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。

如果我需要跟踪多个异步任务,该怎么办?