【问题标题】:Loader and onLoadFinished() after orientation change方向改变后的加载器和 onLoadFinished()
【发布时间】:2016-02-08 12:05:41
【问题描述】:

我在 Fragment 的 onCreate() 上初始化一个加载器,如下所示:

if (null == savedInstanceState) {
    Bundle args = new Bundle();
    getLoaderManager().initLoader(0, args, this);
}

嗯,它工作正常,数据通常返回onLoadFinished()。但是,如果我在加载程序尚未加载数据时更改方向,则永远不会调用 onLoadFinished()。 拜托,有人可以向我解释为什么吗?谢谢

【问题讨论】:

  • 你为什么不在onActivityCreated 中使用它而不使用if 呢? ... initLoader 应该在方向改变后返回缓存结果
  • 我会尝试onActivityCreated,但我认为它也应该适用于onCreate()
  • @Selvin 很好,我尝试不使用if 声明:它可以工作,即使在 onCreate() 中也是如此。我认为原因是每次都需要重新初始化 Loader 才能返回缓存的数据。您的评论基本上是正确的,将其发布为回复,我会接受。谢谢。

标签: android android-fragments android-loadermanager android-loader


【解决方案1】:

您需要删除 if (null == savedInstanceState) 检查 - 通过添加该检查,加载程序不会在重新创建活动时移动到“已启动”状态,并且只有已启动的加载程序才会返回结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多