我有一个活动,它在创建时调用initLoader,以便加载活动将显示的数据.通常,这很好.我设置断点以查看一切发生的顺序.首先我调用initLoader,然后我得到OnCreateLoader回调,然后是OnLoadFinished回调,然后一切都很棒.
但是,我注意到如果我在Android上更改了方向,我没有获得OnCreateLoader回调或OnLoadFinished回调,导致页面上没有显示数据.我仍然在initLoader调用上获得断点,所以我知道这种情况正在发生,但我没有收到错误,我找不到任何文档解释为什么在调用initLoader后我不会得到回调.
有趣的是,如果我回到原来的方向,我确实得到了回调.
所以,总结一下:
我以纵向开始活动
然后我转向风景
我改回肖像
同样,如果我以横向模式启动活动,我会收到回调.然后,如果我切换到肖像,我不会.然后,如果我切换回横向,我会再次收到回调.
有谁知道发生了什么事?
我的代码有一个Activity,它有一个FragmentPagerAdapter,可以根据需要创建'n'个片段.Activity有一个加载器,每个片段都有自己的加载器.所有装载机都有唯一的ID.(Activity的加载器实际上决定了适配器中的Pages数)
我一直在这里和那里得到这个警告,不能指责导致它的原因.它似乎并不重要,也看着LoaderManger的代码抛出这个警告,但仍然 - 警告通常是错误的迹象..
最初使用FragmentStatePagerAdapter然后移动到FragmentPagerAdapter,认为这可能是某种程度上的问题 - 但显然不是.
发布代码会使这一点变得复杂并且添加很少.
有什么想法吗?