обработка действий уничтожения в многопоточном приложении для Android - PullRequest
0 голосов
/ 25 мая 2010

У меня есть многопоточное приложение, в котором фоновые потоки используются для загрузки данных по сети или с диска / базы данных. Время от времени пользователь выполняет некоторые действия, например, извлекать новости по сети, которые будут вызывать фоновый AsyncTask, но по какой-то причине пользователь выйдет из приложения (нажмите кнопку назад, чтобы активность была уничтожена). В большинстве таких сценариев я делаю соответствующие проверки в фоновом потоке после его возврата из n / w ввода / вывода, чтобы он не зависал при доступе к членам действия, которое уже уничтожено. Тем не менее, некоторые угловые случаи остаются там, где происходят сбои, потому что фоновый поток получит доступ к какому-либо члену активности, который теперь является нулевым.

Есть ли у других разработчиков Android какие-либо общие / рекомендуемые рамки для обработки таких сценариев?

Это времена, когда я хочу, чтобы android гарантированно завершил все потоки, когда активность разрушается (так же, как обычный процесс linux очищается при выходе) ... но я думаю, у разработчиков Android были веские причины не выставлять время жизни процесса через API.

1 Ответ

0 голосов
/ 25 мая 2010

Лично у меня есть логическое значение "isAlive", которое я установил в false в onDestroy (), которое проверяется фоновыми потоками. Он отлично работал для моих приложений, у которых есть демоны, синхронизирующие данные приложения с онлайн-базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...