2016-07-25 2 views
0


У меня была ситуация во время работы моей Asyctask.
Пользователь нажимает кнопку «Дом» во время работы AsyncTask.
Если AsyncTask разрешено запускать, когда приложение находится в фоновом режиме или оно должно быть приостановлено и возобновлено, когда приложение выходит на передний план.
Если Asynctask будет приостановлена, когда пользователь нажимает кнопку дома

ответ

1

Это зависит. Что делает AsyncTask?

Если данные синхронизируются с сервером, его следует, вероятно, оставить в покое. Задача async выполняет то, что всегда нужно переделать в onResume()? Отменить.

Если это загрузка данных, это может произойти в любом случае. Будет ли действие/фрагмент заставлять перезагружать данные в onResume() или разрешит загрузчику (вы надеетесь использовать асинхронные загрузчики), чтобы заполнить данные, загруженные в фоновом режиме, когда пользователь был временно переключен на задний план?

Вы должны спросить себя, является ли эта задача запущенной чем-то дорогостоящим (ресурсосберегающим), который не будет полезен, если не на переднем плане?

Также имейте в виду, что ОС может сама отменить задачу сама по себе. Пока вы правильно очищаете ресурсы, надлежащим образом обрабатывать отмену и нулевую активность в обратных вызовах, оставляя ее запущенной, не будет конца света.

Смежные вопросы