Android服务:Activity生命尽头会发生什么?
作者:互联网
假设活动A启动服务S并绑定到服务S.
>当A被破坏时,S会发生什么?
>如何重新创建绑定到S的另一个Activity? http://developer.android.com/guide/components/bound-services.html中的示例代码取消了onStop()中的服务绑定.我想如果再次打开该应用程序,则会为A和S的另一个实例创建一个新进程.但是我希望新活动能够从旧服务中获取数据.
解决方法:
What will happen to S when A is destroyed?
如果A是绑定到S的唯一活动,并且您没有通过startService(Intent)启动服务,则S将被销毁.这是因为在最后绑定的活动从服务取消绑定之前,服务将一直存在.文档记录为here.
How can I recreate another Activity that binds to S?
如果绑定了A,并且您通过Intent切换到活动B,则当B绑定到服务时,该服务将被销毁并重新创建.
如果您希望该服务在没有活动绑定的情况下仍然有效,则必须使用startService(Intent)调用Servie.现在,如果您明确将其停止,或者系统意味着是时候将其销毁,那么它就会出现.如果您不希望出现这种情况,请保留您的数据并在给定的时间访问它.
I think if I open the app again, a new process is created for another instance of A and S
在从系统中终止该进程之前,或者如果您终止该进程(不建议这样做),则该进程保持不变.
编辑:
只有绑定的服务生命周期取决于“活动”.如果要独立使用,请使用startService().这样,只要应用程序启动,或者您通过stopService()/ stopSelf()显式停止服务,它就独立于Activity并在后台运行.您甚至可以在自己的应用程序中拥有服务,并使用IPC在应用程序之间进行通信.这完全取决于用例.
如您所见,服务的配置非常灵活,您必须确定最适合您的应用程序的配置.
标签:android-service,android-lifecycle,android 来源: https://codeday.me/bug/20191030/1967818.html