在重新访问应用程序时停止重新启动asynctask



我的应用程序只需从url请求json数据并将其显示在TableLayout中。我使用asynctask来请求json数据,然后使用该json数据来填充我的TableLayout。它工作正常,但当我按下back按钮,然后我再次进入应用程序时,它通过运行AsyncTask再次请求json数据。我只想停止再次调用AsyncTask。所以TableLayout被相同的数据填满了两次。那么我该如何解决这个问题呢?

进行全局布尔旋转并使用此:

@Override
protected void onSaveInstanceState(Bundle outState) {
    // Here save the data you have
    outState.putInt("integer1", value);...
    super.onSaveInstanceState(outState);
}
  @Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    value = savedInstanceState.getInt("integer1");...
           //fill your layout here
    super.onRestoreInstanceState(savedInstanceState);
    rotation = true;
}
   @Override
public void onResume() {
    super.onResume();
 if(!rotation){
 //start AsyncTask here
 }
}

可能的情况:1.如果你想加载一次数据,那么最好将onResume中的异步任务放在Create上。2.取消onStop或onPause中的异步任务,或在onResume中正确处理。

最新更新