【发布时间】:2014-06-19 09:35:48
【问题描述】:
我正在从纵向启动 AsyncTask,然后我将方向更改为横向。此时我需要引用该正在运行的 AsyncTask 以便我可以取消该任务。
实际情况是这样的:
@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 的参考呢?
请不要使用 Fragment。不要将其作为“如何在方向更改时使用异步任务”或类似内容的副本提及。我知道几种替代解决方案,但我确实想保留该 AsyncTask 的参考。
【问题讨论】:
标签: android android-activity android-asynctask