2

我在说 Activity A 中有一段如下代码:

私有静态最终 int LOADER_ID = 0x200;

受保护的无效 onCreate(Bundle b) {
  ...
  ...
  加载程序 previousLoader = getSupportLoaderManager().getLoader(LOADER_ID);
  ...
  ...
}

观察 1:

用户在显示 Activity A 时更改设备的方向 - previousLoader 不为空。

观察 2:

用户从活动 A 导航到活动 B,在查看活动 B 时更改设备的方向并点击后退按钮 - previousLoader 为空。

我不确定为什么在案例 2 中 previousLoader 为空。使用 loader 的整个想法是避免每次在配置更改期间加载数据。Activity A 有一组片段,它们依赖于先前加载的数据来忠实地工作。由于这个问题,活动正在崩溃。这是一个不同的问题,但我很想知道为什么 getLoader 无法返回以前使用的加载器。

调用的生命周期方法的顺序与预期的一样:即,

OnPause, OnSaveInstanceState, OnStop, OnDestroy, OnCreate, OnStart, OnRestoreInstanceState and OnResume

在我的情况下,活动 B 是任何处理ACTION_VIEW

4

1 回答 1

2

这看起来像是框架中的一个尚未修复的错误。android 开发者线程对此进行了讨论:https ://groups.google.com/forum/?fromgroups#!topic/android-developers/DbKL6PVyhLI 。

此处描述了完全相同的问题:https ://groups.google.com/d/msg/android-developers/DbKL6PVyhLI/OMuWhcCMWo0J 。

google android 网站上有一张公开票可以解决这个问题:https ://code.google.com/p/android/issues/detail?id=20791

我希望这个问题在即将发布的版本之一中得到解决。

于 2013-06-13T14:43:45.560 回答