Я работаю над приложением, которое поддерживает соединение для нескольких целей, таких как публикация обновлений местоположения получения.Что касается способа выполнения задач на основе Android и советов из других ответов, я не изменил стандартное поведение Android по уничтожению и воссозданию приложения при повороте экрана, и в этом отношении все работает хорошо.
Я сохраняю соединение с методом onRetainNonConfigurationInstance.Проблема в том, что я хотел бы закрыть соединение, когда пользователь нажимает Home, приложение сворачивается или по какой-то другой причине теряет фокус, но НЕ при повороте экрана - поэтому я не могу сделать это в onPause, onStop или OnDestroy безнекоторые проверки, так как они вызываются одна за другой при изменении конфигурации.Как сейчас, я использую isFinishing (), чтобы проверить, закрывается ли приложение - но в случае, когда пользователь нажимает Home, это не влечет isFinishing () == true (что имеет смысл).
Одно решениеЯ думал о том, чтобы проверить, имеет ли приложение фокус в потоке, обрабатывающем обновления соединения, и просто закрыть его, если прошло некоторое время без фокуса, - но я чувствую, что должен быть какой-то лучший способ сделать это?
Заранее благодарим за ваше время.
(отредактировано, чтобы прояснить ситуацию с жизненным циклом действия и onRetainNonConfigurationInstance после прочтения опубликованных ответов)