服务是否独立于活动生命周期?

时间:2016-03-19 12:02:51

标签: android android-activity android-service

Service是否独立于Activity生命周期?即使在活动被杀之后它还会继续运行吗?

2 个答案:

答案 0 :(得分:4)

  

服务是否独立于活动生命周期?

  

另一个应用程序组件可以启动服务,即使用户切换到另一个应用程序,它也将继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至可以执行进程间通信(IPC)。

酱:http://developer.android.com/guide/components/services.html

  

即使在活动被杀之后服务会继续运行吗?

取决于

如果是绑定服务,并且您在活动的onPauseonStoponDestroy中取消绑定,则该服务不会从其他地方绑定或由{开始{1}}它会死的。 Read more about bound services.

如果任务被杀(例如,在任务管理器中被删除),如果在其清单条目中指定了context.startService,则将终止该服务。如果设置了android:stopWithTask="true",则服务将通过android:stopWithTask="false"接收回调,其中onTaskRemoved(Intent)是用于启动已删除任务的根活动的意图。 Read more about onTaskRemoved(Intent).

如果您的服务在不同的进程中运行,并且活动崩溃,则服务将继续运行(如果未绑定,则再次运行)。

除此之外,该服务将继续存在直至完成。

答案 1 :(得分:0)

如果应用程序未被杀死,则在活动被终止时服务将继续有效。您可以从活动开始服务或将活动绑定到服务,但它们是独立的。

  

Android系统将仅在内存不足时强制停止服务,并且必须为具有用户焦点的活动恢复系统资源。如果服务绑定到具有用户焦点的活动,则它不太可能被杀死,并且如果声明服务在前台运行(稍后讨论),那么它几乎永远不会被杀死。