определить, когда приложение больше не активно

#android

#Android

Вопрос:

Мне нужно завершить работу моих фоновых потоков при завершении работы приложения. Какой наименее сложный способ добиться этого?

Все, о чем я могу думать, это отслеживать количество выполняемых действий, передавая в приложение отчет о каждом действии onCreate и события onDestory, и когда число достигает нуля, предположим, что приложение завершено?!

Ответ №1:

Возможно, вы захотите рассмотреть возможность запуска фоновых потоков как службы или сервисов. Затем вы можете привязать их к каждому действию и отменить их привязку, когда действие закончится. Когда последнее действие будет отключено от службы, служба остановится.

Ответ №2:

Извините, отредактировал это, потому что я не понимал, что мой ответ применим только в эмулируемой среде. Возможно, вы сможете использовать registerActivityLifecycleCallbacks, но я не уверен.

Комментарии:

1. вы действительно читали, что говорится в документах для onTerminate()??

2. Да, мой плохой, я никогда не использовал его, просто знал, что функция существует.

3. Да, возможно, вы сможете использовать registerActivityLifecycleCallbacks (не могу сказать наверняка, поскольку в javadocs нет фактического описания этого) через два или три года, когда на большинстве устройств будет запущен API 14 уровня .. 🙁 В то же время подсчет ссылок на ваши действия, вероятно, является самым безопасным планом.

Ответ №3:

Когда приложение завершается в Android, весь процесс Unix завершается, поэтому все ваши фоновые потоки останавливаются в это время.