android - 如何在屏幕旋转期间处理 AsyncTask?

标签 android android-asynctask screen-rotation

我阅读了很多关于如何保存我的实例状态或如何处理我的 Activity 在屏幕旋转期间被破坏的内容。

似乎有很多可能性,但我还没有弄清楚哪一种最适合检索 AsyncTask 的结果。

我有一些 AsyncTasks 只是重新启动并调用 Activity 的 isFinishing() 方法,如果 Activity 正在完成,它们将不会更新任何内容。

问题是我有一个任务向网络服务发出请求,该请求可能会失败或成功,重新启动任务会导致用户蒙受经济损失。

你会如何解决这个问题?可能的解决方案有哪些优点或缺点?

最佳答案

您可以在 code.google.com/p/shelves 查看我如何处理 AsyncTask 和方向更改.有多种方法可以做到这一点,我在这个应用程序中选择的一种是取消任何当前正在运行的任务,保存其状态并在创建新 Activity 时使用保存的状态启动一个新任务。这很容易做到,效果很好,而且作为奖励,它会在用户离开应用程序时停止您的任务。

您也可以使用 onRetainNonConfigurationInstance() 将您的 AsyncTask 传递给新的 Activity(注意不要泄露之前的 Activity 虽然这样。)

关于android - 如何在屏幕旋转期间处理 AsyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2620917/

相关文章:

Android MediaPlayer,VideoView rtsp www 身份验证问题

ios - 在 iPad 上锁定方向并禁用旋转

java - 屏幕旋转后恢复 fragment 中微调器的位置

android numberpicker 索引越界旋转

android - 内存/线程相关的方向更改崩溃?

android - 取消选中 RadioButtonGroup 中的所有 RadioButton

java - 找不到 DDMS 文件/opt/android-sdk-linux/platform-tools/hprof-conv ubuntu

android - 如何改变android中actionbar部分的颜色

Android:对话框和 AsyncTask - 为什么我会收到 IllegalArgumentException?

android - 使用相同的 AsyncTask 子类对不同的 URL 进行 API 调用