Android服务不断运行

时间:2015-04-04 12:19:45

标签: android

根据有关Service LifeCycle的android文档 http://developer.android.com/reference/android/app/Service.html#ServiceLifecycle

启动服务"服务将在此时继续运行,直到调用Context.stopService()或stopSelf()。"

服务意味着什么将继续运行? 如果服务绑定到某个连接,我理解它正在等待来自它的连接的回调但是如果服务启动了怎么办? 一旦onStartCommand被执行,服务的目的是什么?

2 个答案:

答案 0 :(得分:2)

  

服务意味着什么?将继续运行?

从Android的角度来看,a running service makes your process more important,并且Android不太可能终止该进程以释放系统RAM以供其他进程使用。

  

执行onStartCommand后,服务的目的是什么?

使用服务的唯一原因是因为您在后台进行的工作可能需要一两秒左右的时间,并且您希望增加工作完成的几率。

所以,例如:

  • 音乐播放器将使用已启动的服务,因此即使用户离开播放器用户界面并使用其设备执行其他操作,他们也可以继续播放音乐

  • 如果您的应用需要下载重要文件,并且对用户来说下载文件很重要,那么您将使用已启动的服务来完成该工作,而不仅仅是分支某个线程或{{1来自活动

  • 如果您的应用需要在后台定期开展工作,您可以将已启动的服务与AsyncTaskAlarmManager

  • 结合使用

答案 1 :(得分:1)

  

服务意味着什么?将继续运行?

该过程将继续运行。

  

执行onStartCommand后,服务的目的是什么?

这取决于您想要对服务做什么。您通常需要一项服务,因为您需要它以异步方式“监听”某些内容(这意味着您不知道这些内容何时会到达)。例如,WhatsApp有一项服务可以检查服务器是否有新消息。如果您不需要“收听”任何内容,则不需要服务。