El servicio de Android solo se inicia en modo de depuración

He creado un servicio que gestiona la conexión XMPP. Mi aplicación necesita recibir mensajes XMPP periódicamente. Todo parece funcionar como se esperaba, pero sólo cuando el teléfono está conectado a Android Studio y ejecutar la aplicación en modo de depuración. Cuando desconecto el teléfono, o incluso si está conectado pero empiezo la aplicación desde el teléfono y no desde el AS, el servicio no parece comenzar …

Me aseguré de que mi servicio se declara correctamente en el manifiesto:

<service android:name=".xmpp.MyService" android:enabled="true" /> 

donde .xmpp es un subpaquete en mi paquete principal.

Aquí está mi servicio

 public class MyService extends Service { public static ConnectivityManager cm; public static MyXMPP xmpp; private static String LOG_TAG = "MyService"; @Override public IBinder onBind(final Intent intent) { Log.v(LOG_TAG, "in onBind"); return null; } @Override public void onCreate() { super.onCreate(); cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if (CurrentInfo.getUser() != null) { xmpp = MyXMPP.getInstance(MyService.this, getResources().getString(R.string.xmpp_url), CurrentInfo.getUser().getJabberId(), getString(R.string.xmpp_password)); xmpp.connect("onCreate"); } } @Override public int onStartCommand(final Intent intent, final int flags, final int startId) { super.onStartCommand(intent, flags, startId); return START_STICKY; } @Override public void onDestroy() { super.onDestroy(); xmpp.connection.disconnect(); } public static boolean isNetworkConnected() { return cm.getActiveNetworkInfo() != null; } } 

Y comienzo mi servicio como este:

 // Start xmpp service here Intent i = new Intent(getBaseContext(), MyService.class); startService(i); 

¡Gracias!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.