【发布时间】:2014-10-25 22:45:44
【问题描述】:
您好,我有一个关于 Android AsyncTask 的问题。 我在 Activity 中有一个片段。 该片段调用 AsyncTask 并在 onPostExecute() 中执行繁重的操作并更新 UI。 我的问题是这个。假设用户打开了活动。 现在片段已附加并调用 AsyncTask 的 doInBackground()。 然后用户突然按下后退按钮关闭活动。 现在,AsyncTask 线程中的执行会发生什么? 活动关闭后线程是否也会死亡? 或者我是否在onostExecute() 的开头使用isAdded() 手动检查了这个Fragment 是否仍然附加? 谢谢!
编辑
在我的 Fragment 中,我隐式声明 AsyncTask().. 像这样
new AsyncTask<String, Void, Boolean>() {
@Override
protected Boolean doInBackground(String... params) {
return processPlays(plays);
}
@Override
protected void onPostExecute(Boolean result) {
if (!isAdded()) return; // IS THIS FINE?
// UPDATE UI
}
}.execute();
【问题讨论】:
标签: android android-activity android-asynctask lifecycle