我正在开发一个为多种目的维护连接的应用程序,例如发布接收位置更新。根据 android 的做事方式和其他答案的建议,我没有覆盖在屏幕旋转时破坏和重新创建应用程序的默认 android 行为,并且在这方面做得很好。
我保持与 onRetainNonConfigurationInstance 方法的连接。问题是我想在用户按下 Home 时关闭连接,应用程序被最小化或由于其他原因失去焦点但不是在屏幕旋转时 - 因此我不能在 onPause、onStop 或 OnDestroy 中执行此操作一些检查,因为它们在配置更改时被一个接一个地调用。就像现在一样,我使用 isFinishing() 来检查应用程序是否正在关闭 - 但是用户按下 Home 的情况并不需要 isFinishing() == true (这是有道理的)。
我想到的一个解决方案是检查应用程序是否在处理连接更新的线程中具有焦点,如果一段时间没有焦点就关闭它 - 但我觉得必须有一些更好的方法来做到这一点?
在此先感谢您的时间。
(在阅读发布的答案后,编辑以清除有关活动生命周期和 onRetainNonConfigurationInstance 的内容)