cas*_*ps1 11 android callback loader orientation
我有一个活动,它在创建时调用initLoader,以便加载活动将显示的数据.通常,这很好.我设置断点以查看一切发生的顺序.首先我调用initLoader,然后我得到OnCreateLoader回调,然后是OnLoadFinished回调,然后一切都很棒.
但是,我注意到如果我在Android上更改了方向,我没有获得OnCreateLoader回调或OnLoadFinished回调,导致页面上没有显示数据.我仍然在initLoader调用上获得断点,所以我知道这种情况正在发生,但我没有收到错误,我找不到任何文档解释为什么在调用initLoader后我不会得到回调.
有趣的是,如果我回到原来的方向,我确实得到了回调.
所以,总结一下:
我以纵向开始活动
然后我转向风景
我改回肖像
同样,如果我以横向模式启动活动,我会收到回调.然后,如果我切换到肖像,我不会.然后,如果我切换回横向,我会再次收到回调.
有谁知道发生了什么事?
jsm*_*ith 10
我们在ViewPager中看到了与Fragments相同的问题.当片段恢复时,似乎没有正确地激活加载器.事实上,当片段暂停时,我们的CursorLoader不再像我期望的那样获得ContentObserver回调.
我们的解决方法是调用restartLoader()来转储先前的内容并重新加载数据.这将与destroyLoader()具有相同的净影响; initLoader(),但效率会更高.
您需要在 onCreate 中调用 initLoader
对于类似的问题和更多信息,请查看LoaderCallbacks.onLoadFinished 如果在 AsyncTaskLoader 运行期间发生方向更改,则不会调用
| 归档时间: |
|
| 查看次数: |
7509 次 |
| 最近记录: |