本地服务还是远程服务?

时间:2010-07-19 14:20:29

标签: android android-2.2-froyo

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

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

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

3 个答案:

答案 0 :(得分:7)

  

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

This is not possible。用户或Android会在某些时候终止您的服务。请重新考虑您的架构。

  

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

一般来说,你没有。

  

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

如果用户或Android取消您的服务,那将无效。

  

使用遥控器是否有利   在一个单独的过程中服务(到   延长使用寿命)这样的时候   活动过程被杀死了   服务还活着吗?

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

  • 您从活动
  • 致电stopService()
  • 服务电话stopSelf()
  • Android终止服务
  • 用户通过“设置”应用程序终止服务
  • 用户通过“任务杀手”(Android 2.1及更早版本,至少)终止服务

答案 1 :(得分:3)

为什么要知道服务是否正在运行? 如果你需要它的东西,只需抛出一个Intent,如果它没有运行,它将从意图开始。

关于第二个问题:

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

答案 2 :(得分:3)

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