我阅读了很多关于如何保存我的实例状态或如何处理我的 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/