Безопасно ли вызывать publishProgress() в AsyncTask после того, как приложение было остановлено?

У меня работает AsyncTask. Если приложение остановлено (телефонный звонок, переключатель приложения и т.д.), Я понимаю, что onPostExecute() никогда не будет вызван. Итак, пока отмена (true) используется для отмены AsyncTask, запущенная задача будет уведомлена об аннулировании. Я не возражаю, чтобы периодически проверять isCancelled() в doInBackground(), но меня беспокоят вызовы publishProgress(), которые засоряются во всех doInBackground. Я понимаю, что onProgressUpdate() работает в основном потоке пользовательского интерфейса.

Означает ли это, что любые вызовы publishProgress() могут привести к сбою приложения, если оно было остановлено? Или это только любые обновления пользовательского интерфейса в onProgressUpdate(), которые могут привести к сбою, когда приложение было остановлено.

Причина, по которой я спрашиваю, заключается в том, что мне интересно, нужно ли мне квалифицировать каждый вызов publishProgress() с проверкой на isCancelled() или я могу просто проверить один раз в onProgressUpdate(), прежде чем пытаться обновить какие-либо компоненты пользовательского интерфейса.

1 ответ

Документация для Android гласит:

onProgressUpdate (Прогресс...) не будет вызываться, если задача была отменена. <a href="https://developer.android.com/reference/android/os/AsyncTask.html#publishProgress%28Progress...%29%23publishProgress(Progress...)" rel="nofollow noreferrer" target="_blank">developer.android.com/...AsyncTask#publishProgress</a>

licensed under cc by-sa 3.0 with attribution.