Service
是否独立于Activity
生命周期?即使在活动被杀之后它还会继续运行吗?
答案 0 :(得分:4)
服务是否独立于活动生命周期?
是
另一个应用程序组件可以启动服务,即使用户切换到另一个应用程序,它也将继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至可以执行进程间通信(IPC)。
酱:http://developer.android.com/guide/components/services.html
即使在活动被杀之后服务会继续运行吗?
取决于
如果是绑定服务,并且您在活动的onPause
,onStop
,onDestroy
中取消绑定,则该服务不会从其他地方绑定或由{开始{1}}它会死的。 Read more about bound services.
如果任务被杀(例如,在任务管理器中被删除),如果在其清单条目中指定了context.startService
,则将终止该服务。如果设置了android:stopWithTask="true"
,则服务将通过android:stopWithTask="false"
接收回调,其中onTaskRemoved(Intent)
是用于启动已删除任务的根活动的意图。 Read more about onTaskRemoved(Intent)
.
如果您的服务在不同的进程中运行,并且活动崩溃,则服务将继续运行(如果未绑定,则再次运行)。
除此之外,该服务将继续存在直至完成。
答案 1 :(得分:0)
如果应用程序未被杀死,则在活动被终止时服务将继续有效。您可以从活动开始服务或将活动绑定到服务,但它们是独立的。
Android系统将仅在内存不足时强制停止服务,并且必须为具有用户焦点的活动恢复系统资源。如果服务绑定到具有用户焦点的活动,则它不太可能被杀死,并且如果声明服务在前台运行(稍后讨论),那么它几乎永远不会被杀死。