在阅读了一些关于 Android 配置的文章后,我仍然不知道如何在将 View 从纵向更改为横向时不启动异步任务。我从服务器加载了一些信息,每次旋转手机时都加载它是不明智的。我想加载一次。我可以在不在 list 文件中添加“changeConfig”标志的情况下这样做吗?
最佳答案
1 使您的 AsyncTask 成为您类的私有(private)实例变量(必须声明为静态内部类或单独的文件)。
2 在 onRetainConfigurationChanges()
中返回你的 AsyncTask 实例
public Object onRetainNonConfigurationInstance() {
return yourAsyncTask;
}
3 在oResume()
中获取:
public void onResume() {
Object data = getLastNonConfigurationInstance();
if (data != null) {
... // pass in your activity to the AsyncTask so it can update your views
} else {
... // create new AsyncTask and spin it up.
}
}
关于Android 在每次配置更改时启动一个异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8402264/