我的应用中有一项服务可以完成一些任务。我还有一个WidgetProvider类。当应用程序被杀死时,我通过stopSelf()停止服务。在此之后如果用户与窗口小部件交互,我需要知道服务是否正在运行。我怎么能这样做?
widget类中的布尔变量不起作用,因为它只是一个广播接收器。此共享首选项也无法正常工作,因为我的应用程序被杀死,因此我得到空指针异常。在这种情况下,我如何确定服务是否正在运行?任何帮助将不胜感激,提前感谢!!
答案 0 :(得分:0)
不确定为什么需要检查服务是否正在运行。您可以在AppWidgetProvider中startService
,如果尚未启动,它将启动该服务。但是,如果您仍然需要检查服务是否正在运行,那么您可以使用SharedPreference
。 SharedPreference
对于您的Services,Activity和WidgetProvider是通用的,因为它们都属于同一个应用程序。我不确定你为什么得到nullpointerException
。
当您调用stopSelf()
或在onDestroy()
之类的服务的适当生命周期中,您可以在布尔值中写入有关服务状态的SharedPreferences
。然后,您可以阅读SharedPreferences
或onReceive()
中的onUpdate()
。