Android:在应用程序被终止后查找服务是否正在运行

时间:2016-04-20 20:16:28

标签: android android-widget android-service

我的应用中有一项服务可以完成一些任务。我还有一个WidgetProvider类。当应用程序被杀死时,我通过stopSelf()停止服务。在此之后如果用户与窗口小部件交互,我需要知道服务是否正在运行。我怎么能这样做?

widget类中的布尔变量不起作用,因为它只是一个广播接收器。此共享首选项也无法正常工作,因为我的应用程序被杀死,因此我得到空指针异常。在这种情况下,我如何确定服务是否正在运行?任何帮助将不胜感激,提前感谢!!

1 个答案:

答案 0 :(得分:0)

不确定为什么需要检查服务是否正在运行。您可以在AppWidgetProvider中startService,如果尚未启动,它将启动该服务。但是,如果您仍然需要检查服务是否正在运行,那么您可以使用SharedPreferenceSharedPreference对于您的Services,Activity和WidgetProvider是通用的,因为它们都属于同一个应用程序。我不确定你为什么得到nullpointerException

当您调用stopSelf()或在onDestroy()之类的服务的适当生命周期中,您可以在布尔值中写入有关服务状态的SharedPreferences。然后,您可以阅读SharedPreferencesonReceive()中的onUpdate()