我有一个必须永久运行的后台服务。该服务只需要与我的活动交互。
如果服务仍在运行,我如何检查活动恢复?有没有比服务类中的静态变量更好的可能性?
在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被杀死时服务仍然存在?
我有一个必须永久运行的后台服务。该服务只需要与我的活动交互。
如果服务仍在运行,我如何检查活动恢复?有没有比服务类中的静态变量更好的可能性?
在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被杀死时服务仍然存在?
我有一个必须永久运行的后台服务。
这是不可能的。用户或 Android 将在某个时候终止您的服务。请重新考虑您的架构。
如果服务仍在运行,我如何检查活动恢复?
一般来说,你不会。
有没有比服务类中的静态变量更好的可能性?
如果用户或 Android 终止您的服务,这将不起作用。
在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被杀死时服务仍然存在?
远程服务与服务是否在活动被销毁后运行无关。如果您调用startService()
,该服务将独立于任何活动运行,直到:
stopService()
从活动中调用stopSelf()
中启动服务startforeground()
。它将增加服务的时间跨度。
为什么要知道服务是否正在运行?如果您需要它的某些东西,只需抛出一个Intent
,如果它没有运行,它将由意图启动。
关于第二个问题:
当您的活动关闭时,您的服务不会“死亡”。