【发布时间】:2014-04-14 17:48:13
【问题描述】:
如何在屏幕定位期间保留异步任务。 我已经搜索了很多,但没有找到任何优雅的解决方案。
我有什么问题 ::
我有不同的纵向和横向布局,所以不能使用
android:configChanges="keyboardHidden|orientation|screenSize"来限制 活动休闲。-
我不能使用
Fragment.setRetainInstance(boolean),因为我有嵌套片段,所以我将片段添加到后堆栈 使用addToBackStack()在这种情况下:
onCreate()和onDestroy()不会被调用。这在 API 文档中有所提及。onCreateView()未收到从onSaveInstanceState()传递的包。传入的 Bundle 为空。 所以我不会得到activity的保存实例
如何在片段中保留异步任务以避免在方向更改时崩溃。
或者有没有其他方法可以执行异步任务。
【问题讨论】:
-
对不起,如果我不明白,保留任务意味着异步任务在定向后不会再次启动?或者你想在定向后将数据传递给异步任务?
-
@Neha 我不想在屏幕方向上再次启动异步任务。如果旧的活动被破坏,我们应该继续工作而不是给任何内存泄漏。
-
因此,根据您的 #1 点,每次在方向上您都会破坏当前活动并开始新的活动(基于纵向/横向模式)。并且它的 bcaz 你的异步任务丢失了启动的 bcaz 活动被破坏。所以内存泄漏是问题或者你不知道异步任务需要从哪里开始,就像数据丢失一样。?
-
@Neha 异步任务丢失,因为活动将被破坏。
标签: android asynchronous android-fragments android-asynctask screen-orientation