#android
#Android
Вопрос:
Мне нужно завершить работу моих фоновых потоков при завершении работы приложения. Какой наименее сложный способ добиться этого?
Все, о чем я могу думать, это отслеживать количество выполняемых действий, передавая в приложение отчет о каждом действии onCreate и события onDestory, и когда число достигает нуля, предположим, что приложение завершено?!
Ответ №1:
Возможно, вы захотите рассмотреть возможность запуска фоновых потоков как службы или сервисов. Затем вы можете привязать их к каждому действию и отменить их привязку, когда действие закончится. Когда последнее действие будет отключено от службы, служба остановится.
Ответ №2:
Извините, отредактировал это, потому что я не понимал, что мой ответ применим только в эмулируемой среде. Возможно, вы сможете использовать registerActivityLifecycleCallbacks, но я не уверен.
Комментарии:
1. вы действительно читали, что говорится в документах для onTerminate()??
2. Да, мой плохой, я никогда не использовал его, просто знал, что функция существует.
3. Да, возможно, вы сможете использовать
registerActivityLifecycleCallbacks
(не могу сказать наверняка, поскольку в javadocs нет фактического описания этого) через два или три года, когда на большинстве устройств будет запущен API 14 уровня .. 🙁 В то же время подсчет ссылок на ваши действия, вероятно, является самым безопасным планом.
Ответ №3:
Когда приложение завершается в Android, весь процесс Unix завершается, поэтому все ваши фоновые потоки останавливаются в это время.