我在活动A中有一段如下代码:
private static final int LOADER_ID = 0x200; protected void onCreate(Bundle b) { ... ... Loader previousLoader = getSupportLoaderManager().getLoader(LOADER_ID); ... ... }
观察1:
用户在显示活动A时更改设备的方向 - previousLoader不为空。
观察2:
用户从活动A导航到活动B,在查看活动B时更改设备的方向并点击后退按钮 - previousLoader为空。
我不确定为什么previousLoader在案例2中为null。使用loader的整个想法是在配置更改期间每次都避免数据加载。活动A有一组片段,它依赖于先前加载的数据来忠实地工作。由于此问题,活动正在崩溃。这是一个不同的问题,但我很想知道为什么getLoader无法返回以前使用过的加载器。
调用的生命周期方法的顺序如预期:即。,
OnPause, OnSaveInstanceState, OnStop, OnDestroy, OnCreate, OnStart, OnRestoreInstanceState and OnResume
在我的情况下,活动B是处理ACTION_VIEW
答案 0 :(得分:2)
这看起来像框架中的一个尚未修复的错误。 android开发者线程对此进行了讨论:https://groups.google.com/forum/?fromgroups#!topic/android-developers/DbKL6PVyhLI。
此处描述完全相同的问题:https://groups.google.com/d/msg/android-developers/DbKL6PVyhLI/OMuWhcCMWo0J。
谷歌Android网站上有一个开放的票证来解决这个问题:https://code.google.com/p/android/issues/detail?id=20791
我希望在即将发布的版本中解决问题。