Android 如何在方向更改时保留AsyncTask的引用
我从纵向开始一个异步任务,然后我将方向改为横向。此时,我需要引用正在运行的异步任务,以便取消该任务 事实上,情况就是这样:Android 如何在方向更改时保留AsyncTask的引用,android,android-activity,android-asynctask,Android,Android Activity,Android Asynctask,我从纵向开始一个异步任务,然后我将方向改为横向。此时,我需要引用正在运行的异步任务,以便取消该任务 事实上,情况就是这样: @Override public void onClick(View v) { switch(v.getId()) { case R.id.startBtn: sampleTaskOne = new SampleAsyncTaskOne(this, sampleTaskCallbacks); sampl
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.startBtn:
sampleTaskOne = new SampleAsyncTaskOne(this, sampleTaskCallbacks);
sampleTaskOne.execute();
break;
case R.id.stopBtn:
sampleTaskOne.cancel(true);
sampleTaskOne = null;
default: break;
}
}
现在在方向更改后,如果单击stopBtn NullPointerException,则会发生异常,因为sampleTaskOne未初始化。那么,如何保持对运行AsyncTask的引用呢
请不要使用碎片。不要把它当作在方向改变或类似情况下如何使用asynctask的复制品。我知道几种备选解决方案,但我确实希望保留该任务的参考资料 您可以将sampleTaskOne存储为静态变量,并在完成或取消时将其传递为null。如果我需要跟踪多个异步任务,该怎么办?