繁体   English   中英

屏幕旋转的AsyncTask - onRetainNonConfigurationInstance已弃用

[英]AsyncTask with screen rotation - onRetainNonConfigurationInstance deprecated

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

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

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

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

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

使用弃用方法没有任何内在错误。 如果您的AsyncTask非常关键,如果您的方向发生变化,则无法取消并重新启动,您应该考虑使用服务。

它仅在Honeycomb及以上版本中被弃用,它也适用于那些。 “新”方式是使用加载器(您可以使用兼容性库来获取HC之前的版本)或保留的片段。 如果调用setRetainInstance()则实例setRetainInstance()传递给新创建的活动(它们实际上在兼容性库的FragmentActivity中使用onRetainNonConfigurationInstance ),因此它实际上与您现在拥有的相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM