【发布时间】:2014-01-29 19:10:40
【问题描述】:
我的活动或活动中的片段使用异步任务来执行 CPU 密集型工作。我想知道在异步任务中的哪个位置可以安全地使用主机活动或片段。
我猜 onPostExecute 应该没问题,因为异步任务旨在帮助 UI 线程,我在 onPostExecute 中看到了更新 UI 的示例。
但是在 doInBackground 中这样做也安全吗?在doInBackground期间是否有可能破坏片段或活动?
【问题讨论】:
-
为什么不先检查 AsyncTask 的文档?\
-
在 developer.android.com/reference/android/os/AsyncTask.html 中,它只说异步任务像后台任务一样运行。就其语义而言,onPostExecute 在最后一步被调用,此时它仍可用于更新 UI。因此,它有点暗示主机 UI 在异步任务的整个过程中仍然可用。所以,doInBackground 应该是安全的。如果用户在执行期间杀死了前台 UI,会发生什么?运行时是否确保在异步任务完成之前不会发生这种情况?谢谢,
标签: android android-fragments android-activity android-asynctask