我读过官方的android文档,他们说
绑定服务只有在另一个应用程序组件绑定到它时才能运行。
因此,我理解如果我有一个活动,并从该活动中调用一个服务,那么当一个活动被破坏时,服务也被摧毁。
当我按下“后退”按钮并退出应用程序时,这个操作很好。
问题是:当我旋转屏幕时,会调用活动中的onDestroy()回调,而不调用服务中的onDestroy()回调.
考虑到上述官方文件的引用,有人能解释一下为什么会发生这种情况吗?
请注意,我只有一个以该服务为界的活动。
发布于 2017-04-10 13:55:09
服务状态的文档。
服务既可以启动,也可以有绑定到它的连接。在这种情况下,只要服务已经启动,或者有一个或多个带有
Context.BIND_AUTO_CREATE标志的连接,系统就会保持服务的运行。一旦这两种情况都不存在,服务的onDestroy()方法就会被调用,服务就会有效地终止。所有清理(停止线程,注销接收者)应在从onDestroy()返回时完成。
因此,如果您解除与您的活动破坏绑定,没有另一个连接绑定到它或直接启动服务,服务也将被销毁。
因此,也要确保解除与服务的绑定。
https://stackoverflow.com/questions/43324846
复制相似问题