当与服务绑定的最后一个活动被销毁时,绑定服务是否被销毁?

时间:2017-04-10 13:41:36

标签: android android-service-binding

我已经阅读了官方的Android文档并且他们说了

  

绑定服务仅在另一个应用程序组件运行时运行   绑定它。

因此,我理解如果我有一个Activity并从该Activity调用一个服务,那么当一个活动被销毁时,服务也会被销毁。

当我按下后退按钮并退出应用程序时,这很有效。

问题是:当我旋转屏幕时,会调用来自Activity的onDestroy()回调,但不会调用来自服务的onDestroy()回调...

考虑到官方文档中的上述引文,有人可以解释为什么会发生这种情况吗?

请注意,我只有一项与该服务绑定的活动。

1 个答案:

答案 0 :(得分:0)

Service州的文件。

  

服务既可以启动,也可以绑定连接。在这种情况下,只要系统启动或与Context.BIND_AUTO_CREATE标志有一个或多个连接,系统就会保持服务运行。一旦这些情况都不成立,就会调用服务的onDestroy()方法,并且服务会被有效终止。从onDestroy()返回时,应完成所有清理(停止线程,取消注册接收器)。

因此,如果您与活动销毁解除绑定,没有绑定到它的另一个连接或直接启动服务,该服务也将被销毁。

因此,请务必从服务中取消绑定。