with stopservice intent implement how create android service

stopservice - java android service



¿Por qué este servicio simple no está comenzando? (5)

También hay circunstancias en las que debe poner el atributo "habilitado" en "verdadero" al definirlo en el manifiesto, de esta manera:

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

Consulte este enlace para obtener más información: http://developer.android.com/guide/topics/manifest/service-element.html

Tengo un servicio con un controlador que tiene que escribir "Hola" en el logcat cada 5 segundos. Pero no escribe nada en el logcat ... Es como si el servicio no se estuviera ejecutando, y puse un punto de interrupción y el modo de depuración nunca se detiene en el punto de interrupción.

Comienzo el servicio, en la primera actividad de mi aplicación, con esto:

startService(new Intent(GPSLoc.this, MyServiceNotifications.class)); //enciendo el service

Estoy seguro de que se ejecuta el código startService porque se llama antes de comenzar otra actividad y comienza la otra actividad.

Este es el código de mi servicio:

public class MyServiceNotifications extends Service { boolean serviceStopped; private Handler mHandler; private Runnable updateRunnable = new Runnable() { @Override public void run() { if (serviceStopped == false) { createNotificationIcon(); } queueRunnable(); } }; private void queueRunnable() { // 600000 : cada 10 minutos, comprueba si hay nuevas notificaciones y actualiza la // notification BAR mHandler.postDelayed(updateRunnable, 5000); } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { serviceStopped = false; // //////////////////////////////////////MANEJADOR SIMILAR A UN HILO mHandler = new Handler(); queueRunnable(); // ///////////////////////////////////// FIN MANEJADOR } @Override public void onDestroy() { serviceStopped = true; } @Override public void onStart(Intent intent, int startid) { } public void createNotificationIcon() { Log.d("MyServiceNotifications", "Hello"); } }


¿Declaraste el servicio en AndroidManifest.xml ?


Muy importante: escriba el espacio de nombre correctamente, por ejemplo:

<service android:name="com.example.data.synchronization.SynchronizationService"/>

en mi AndroidManifest.xml anteriormente estaba (mal):

<service android:name="com.example.data.SynchronizationService"/>

¡Ningún servicio comenzó y ningún mensaje de error !


Hola, el código que escribes está funcionando bien. Puede ser que te olvides del siguiente código en el archivo de manifiesto antes de cerrar la etiqueta de la aplicación.

<application> .... <service android:name=".MyServiceNotifications"/> </application>


Si usa Xamarin Droid, la manera más fácil de hacerlo es marcar la clase como un servicio como este:

[Service] public class LongRunningTaskService : Service { ... }

Entonces no hay necesidad de ponerlo en el AndroidManifest.xml.