屏幕旋转的AsyncTask - onRetainNonConfigurationInstance已弃用

Rya*_*yan 6 java multithreading android android-asynctask

在处理AsyncTasks和屏幕旋转时,我仍然试图找到"正确的"设计模式.我读了这篇链接到这段代码的commonsware博文,但现在不推荐使用onRetainNonConfigurationInstance方法.文档中的神奇句子指出"在切换到下一个活动期间没有消息处理的保证简化了对活动对象的使用......"这是关于这个方法做了什么的真正关键部分.我没有看到使用setRetainInstance()能够实现相同目标的建议.

我也看到了这样的帖子,其中第一个答案实际上是一个糟糕的黑客,只覆盖了90%的用例(即如果你的任务正在运行然后打个电话会发生什么,该解决方案不会工作).

有人建议在这里查看AsyncTask示例的代码,但除非我是密集的,否则我看不到它们在应用程序的任何地方使用(在谷歌代码上使用搜索功能时)

这个问题显然已被多次询问,但我没有看到最新的,适当的asnwer.如果存在,请回答并关闭,如果必须,但至少回答!:)

这是另一个链接,它检查相同的,已弃用的方法.

Nik*_*kov 1

它仅在 Honeycomb 及更高版本上被弃用,并且它在这些上也可以正常工作。“新”方法是使用加载器(您可以使用兼容性库来获取 HC 之前版本中的加载器)或保留片段。如果您调用setRetainInstance()按原样传递给新创建的活动的实例(它们实际上onRetainNonConfigurationInstanceFragmentActivity兼容性库中使用),那么它实际上与您现在拥有的相同。