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

时间:2012-09-11 11:34:42

标签: android

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

2 个答案:

答案 0 :(得分:2)

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

@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 :(得分:0)

可能的情况: 1.如果要加载数据一次,您最好将onResume中的异步任务调用onCreate。 2.取消onStop或onPause内的异步任务,或在onResume中正确处理。