如何在Android上保存AsyncTask的实例状态

时间:2011-08-21 22:08:34

标签: android android-asynctask

我的程序使用tcpdump命令记录网络流量,_initTask执行tcpdump命令。
当我退出应用程序时,我丢失了对象_initTask,
回到应用程序后,我无法访问_initTask对象以便能够停止任务 如何保存_initTask实例状态?

protected InitTask _initTask;

public void OnClickRecord(View view) throws IOException {
    ....

    Log.e("AndroLoad class::OnClickRecord", "AsyncTask will start");
    _initTask = new InitTask();
    _initTask.execute(this);

    } else {
        ....
    }

}

我可以使用onSaveInstanceState(Bundle)OnPause()执行此操作吗?如果是,请提供一个例子。

1 个答案:

答案 0 :(得分:0)

  

我的程序使用tcpdump命令记录网络流量

Android不适合运行命令行程序。

  

_initTask执行tcpdump命令

为什么呢? tcpdump是一个命令。它运行在自己的过程中。它将无限期地运行,或者直到捕获到指定数量的数据包,或者直到您向其发送SIGINT或SIGKILL。在这种情况下,AsyncTask毫无意义。

  

退出应用程序时,我丢失了对象_initTask

当然。您应该在tcpdump中停止onDestroy()分叉该进程的任何组件。

  

如何保存_initTask实例状态?

你没有。您应该在tcpdump中停止onDestroy()分叉该进程的任何组件。