我的应用程序只需从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中正确处理。