5

我有一个必须永久运行的后台服务。该服务只需要与我的活动交互。

  1. 如果服务仍在运行,我如何检查活动恢复?有没有比服务类中的静态变量更好的可能性?

  2. 在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被杀死时服务仍然存在?

4

3 回答 3

7

我有一个必须永久运行的后台服务。

这是不可能的。用户或 Android 将在某个时候终止您的服务。请重新考虑您的架构。

如果服务仍在运行,我如何检查活动恢复?

一般来说,你不会。

有没有比服务类中的静态变量更好的可能性?

如果用户或 Android 终止您的服务,这将不起作用。

在单独的进程中使用远程服务(以延长服务寿命)是否有利,以便在活动进程被杀死时服务仍然存在?

远程服务与服务是否在活动被销毁后运行无关。如果您调用startService(),该服务将独立于任何活动运行,直到:

  • stopService()从活动中调用
  • 服务调用stopSelf()
  • Android 终止服务
  • 用户通过设置应用程序终止服务
  • 用户通过“任务杀手”(至少 Android 2.1 及更早版本)终止服务
于 2010-07-19T14:28:35.003 回答
3

中启动服务startforeground()。它将增加服务的时间跨度。

于 2010-08-24T06:06:16.803 回答
3

为什么要知道服务是否正在运行?如果您需要它的某些东西,只需抛出一个Intent,如果它没有运行,它将由意图启动。

关于第二个问题:

当您的活动关闭时,您的服务不会“死亡”。

于 2010-07-19T14:42:20.093 回答