如何在方向更改时保留AsyncTask的引用

时间:2014-06-19 09:35:49

标签: android android-activity android-asynctask

我从纵向开始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。不要把它作为副本提及#34;如何在方向改变时使用asynctask"或类似的东西。我知道几种替代解决方案,但我确实想继续参考AsyncTask。

1 个答案:

答案 0 :(得分:0)

您可以将sampleTaskOne存储为静态变量,并在完成或取消后将其传递给null