Android 在每次配置更改时启动一个异步任务

标签 android configuration android-asynctask

在阅读了一些关于 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/

相关文章:

java - 从 AsyncTask 返回 4 个列表

java - 使用 org.apache.commons.net.ftp.FTPClient 从 AsyncTask 类登录 FTP 时出错

android - LD_LIBRARY_PATH 定义所需的库

android - 错误 :Execution failed for task ':app:packageRelease' . > java.io.IOException:无法读取 zip 文件

java - Log4J 出现 "cannot find symbol"错误,即使我正在遵循教程

angular - 在 Angular2 中禁用应用程序加载/路由

android - AsyncTask 的内存泄漏

android - 膨胀 View 返回旧的膨胀结果

android - 无法在opencv中加载haarcascadeshaarcascade.xml

javascript - 如何将文本解析为 JavaScript?