我已经阅读了官方的Android文档并且他们说了
绑定服务仅在另一个应用程序组件运行时运行 绑定它。
因此,我理解如果我有一个Activity并从该Activity调用一个服务,那么当一个活动被销毁时,服务也会被销毁。
当我按下后退按钮并退出应用程序时,这很有效。
问题是:当我旋转屏幕时,会调用来自Activity的onDestroy()
回调,但不会调用来自服务的onDestroy()
回调...
考虑到官方文档中的上述引文,有人可以解释为什么会发生这种情况吗?
请注意,我只有一项与该服务绑定的活动。
答案 0 :(得分:0)
Service州的文件。
服务既可以启动,也可以绑定连接。在这种情况下,只要系统启动或与
Context.BIND_AUTO_CREATE
标志有一个或多个连接,系统就会保持服务运行。一旦这些情况都不成立,就会调用服务的onDestroy()
方法,并且服务会被有效终止。从onDestroy()
返回时,应完成所有清理(停止线程,取消注册接收器)。
因此,如果您与活动销毁解除绑定,没有绑定到它的另一个连接或直接启动服务,该服务也将被销毁。
因此,请务必从服务中取消绑定。