2016-04-20 1 views
0

J'ai un service dans mon application qui effectue certaines tâches. J'ai aussi une classe WidgetProvider. Lorsque l'application est arrêtée, j'arrête le service via stopSelf(). Après cela, si l'utilisateur interagit avec le widget, j'ai besoin de savoir si le service est en cours d'exécution. Comment puis je faire ça?Android: Trouver si le service est en cours d'exécution ou non à partir du widget après que l'application est tué

Les variables booléennes dans la classe de widget ne fonctionnent pas car il s'agit juste d'un récepteur de diffusion. De plus, les préférences partagées ne fonctionnent pas car mon application est supprimée et j'obtiens donc une exception de pointeur nul. Dans ce cas, comment puis-je savoir si le service est en cours ou non? Toute aide serait appréciée, merci d'avance !!

Répondre

0

Vous ne savez pas pourquoi vous devez vérifier si les services fonctionnent ou non. Vous pouvez juste startService dans le AppWidgetProvider, et il démarrera le service s'il n'est pas déjà démarré. Mais si vous avez encore besoin de vérifier si le service est en cours d'exécution ou non, vous pouvez utiliser SharedPreference. SharedPreference est commun à vos services, activité et WidgetProvider, car tous appartiennent à la même application. Je ne suis pas sûr pourquoi vous obtenez un nullpointerException.

Lorsque vous appelez stopSelf() ou dans le cycle de vie approprié du service comme onDestroy() peut-être que vous pourriez écrire à SharedPreferences sur l'état du service dans un booléen. Vous pouvez ensuite lire à partir de ce SharedPreferences dans le onReceive() ou onUpdate().