【发布时间】:2010-07-19 14:20:28
【问题描述】:
我有一个必须永久运行的后台服务。该服务只需要与我的活动交互。
如果服务仍在运行,我如何检查活动恢复?有没有比服务类中的静态变量更好的可能性?
在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被终止时服务仍然存在?
【问题讨论】:
-
´adb bugreport´ 告诉我,我的服务崩溃太多并被破坏了
我有一个必须永久运行的后台服务。该服务只需要与我的活动交互。
如果服务仍在运行,我如何检查活动恢复?有没有比服务类中的静态变量更好的可能性?
在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被终止时服务仍然存在?
【问题讨论】:
我有一个后台服务必须 永久运行。
This is not possible。用户或 Android 将在某个时候终止您的服务。请重新考虑您的架构。
我如何检查活动简历如果 服务还在运行吗?
一般来说,你不会。
有没有比服务类中的静态变量更好的可能性?
如果用户或 Android 终止您的服务,这将不起作用。
使用遥控器有好处吗 服务在一个单独的过程中(到 延长使用寿命),这样当 活动进程被杀死 服务还活着吗?
远程服务与活动销毁后服务是否运行无关。如果您调用startService(),服务将独立于任何活动运行,直到:
stopService()
stopSelf()
【讨论】:
您为什么想知道服务是否正在运行?
如果你需要它的东西,只需抛出一个Intent,如果它没有运行,它将按意图启动。
关于第二个问题:
当您的 Activity 关闭时,您的服务不会“死亡”。
【讨论】:
Broadcasts,让所有人都知道您还活着。
在startforeground() 中启动服务。它将增加服务的时间跨度。
【讨论】: