J'ai un service avec un handler qui doit écrire "Hello" dans le logcat toutes les 5 secondes. Mais il n'écrit rien dans le logcat... C'est comme si le service ne s'exécutait pas, et je mets un point d'arrêt sur lui et le mode débogage ne s'arrête jamais sur le point d'arrêt.
Je lance le service, dans la première activité de mon application, avec ceci :
startService(new Intent(GPSLoc.this, MyServiceNotifications.class)); //enciendo el service
Je suis sûr que le code startService
est exécutée parce qu'elle est appelée avant de lancer une autre activité, et l'autre activité démarre.
C'est le code de mon service :
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");
}
}
12 votes
Avez-vous déclaré le service dans le fichier manifeste ?
0 votes
Mettre un logcat dans onCreate(), est-ce qu'il est utilisé ? De plus, quand appelez-vous run()sur updateRunnable ? Je ne vois pas comment il est exécuté
0 votes
Ohh vrai, j'oublie de mettre le maNIFEST !! merci
0 votes
Une autre chose à vérifier est que votre service n'est PAS déjà en cours d'exécution. Dans ce cas, vous devez arrêter le service et le relancer.