我的程序使用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()
执行此操作吗?如果是,请提供一个例子。
答案 0 :(得分:0)
我的程序使用tcpdump命令记录网络流量
Android不适合运行命令行程序。
_initTask执行tcpdump命令
为什么呢? tcpdump
是一个命令。它运行在自己的过程中。它将无限期地运行,或者直到捕获到指定数量的数据包,或者直到您向其发送SIGINT或SIGKILL。在这种情况下,AsyncTask
毫无意义。
退出应用程序时,我丢失了对象_initTask
当然。您应该在tcpdump
中停止onDestroy()
分叉该进程的任何组件。
如何保存_initTask实例状态?
你没有。您应该在tcpdump
中停止onDestroy()
分叉该进程的任何组件。