0

后我中的init 片段的的onCreate()装载机这样的片段:装载机和onLoadFinished()方向改变

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

好,它的工作原理和数据都在正常onLoadFinished()返回。但是如果我在装载程序尚未加载数据时改变方向,那么onLoadFinished()永远不会被调用。 请有人向我解释为什么?谢谢

+0

为什么不在'onActivityCreated'中不用'if'呢? ... initLoader应该在方向改变后返回缓存的结果 – Selvin 2015-04-03 09:42:29

+0

我会尝试'onActivityCreated',但我认为它也应该在'onCreate()'上工作。 – GPack 2015-04-03 09:47:18

+0

@Selvin好吧,我试着没有'if'语句:它工作,即使在onCreate()。我认为,原因是_Loader_需要每次重新初始化以返回缓存数据。 您的评论基本正确,将其作为回复发布,我会接受。谢谢。 – GPack 2015-04-03 10:31:26

回答

0

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