У меня есть приложение для Android с некоторым глобальным состоянием (включая некоторые большие SoundPool s), которые требуют очистки, поэтому, следуя ответам на мой предыдущий вопрос, я пытаюсь обработать это с помощью Service.
В настоящее время я использую связанную службу, которую каждое действие связывает/разворачивает в onStart/onStop, а когда все действия останавливаются, служба становится несвязанной и onDestroy вызывается в службе, позволяя мне освободить SoundPools.
Так как жизненный цикл активности преднамеренно перекрывается (новая активность onStart срабатывает до того, как старая стрелка срабатывает onStop), при навигации между действиями всегда есть хотя бы одна активность, и служба остается в живых.
Однако, если я поворачиваю экран, чтобы вызвать перезагрузку конфигурации, служба отключается и умирает, когда активная активность проходит через жизненный цикл перезапуска конфигурации.
Как я могу обойти это и сохранить работоспособность службы заново, в то же время позволяя службе умереть, когда приложение остановлено?