我创建了一个Android应用程序,因为我想取消片段的AsyncTask onPause状态。
我尝试使用AsyncTask.cancel(true);
,但它会给出空指针异常。
@Override
public void onPause()
{
super.onPause();
AsyncTask.cancel(true);
}
感谢。
答案 0 :(得分:0)
task.cancel()
会这样做。请务必经常检查isCancelled()
以及onBackground()
中的onPostExecute()
,以避免访问/更新不再存在的用户界面。
public void onActivityPause() {
task.cancel();
}
答案 1 :(得分:0)
asyncTask.cancel(真);将仅更改布尔值,并且不会停止您的线程。 所以你需要“询问”异步任务是否未被取消。
示例:
@Override
protected Void doInBackground(Void... params) {
while(!isCancelled()){
// do something
}
return null;
}