我创建了一个标签式应用。在其中一个选项卡中,我有代码,用于读取和显示通过usb端口传入的消息。单击选项卡时它工作正常,但当我移动到另一个选项卡并返回时,我的问题就出现了。通过调试,我了解到创建了一个新的AsyncTasks任务,onPreExecute()
运行了两次,但doInBackground()
仅在第一次运行。
当我离开标签然后回来但onPreExecute()
无法运行时doInBackground()
为什么会运行,这真的没有意义。
是片段的onResume()
和onPause()
。
@Override
public void onResume(){
super.onResume();
Log.d("DEBUG", "onResume Runs");
display = new displayMessages(); //displayMessages() is the name of the AsyncTask
display.execute();
}
@Override
public void onPause() {
super.onPause();
MainActivity.setTabBoolean(3, false);
display.cancel(true);
Log.d("DEBUG", "Receiver task Canceled. is cancelled = " + String.valueOf(display.isCancelled()));
}