我必须使用Fragments来获取LoaderManager吗?

时间:2011-09-30 04:21:23

标签: android android-loadermanager

根据一些文档,我可以在Activity或Fragment中使用Loader,但兼容包显示只有FragmentActivity具有getLoaderManager()方法。

由于旧的托管游标已被弃用,我们必须使用Cursor Loader。那么为什么这个数据管理功能应该与UI小部件的选择联系起来呢?这对我没用。

感谢 P上。

2 个答案:

答案 0 :(得分:6)

  

由于旧的托管游标已被弃用,我们必须使用Cursor Loader。

不,托管游标仍然有效。通常,Android中的“弃用”意味着“我们会尽可能支持这种机制,但我们认为有更好的选择”。

  

那么为什么这个数据管理功能应该与UI小部件的选择相关联呢?

不是。您不必使用片段从FragmentActivity继承。您也可以创建自己的LoaderManagerCapableActivity,从FragmentActivity克隆相关数据成员和方法(源代码在您的硬盘上)。但是,LoaderManager 已将与活动相关联,因为它与活动生命周期相关联,托管游标也是如此。例如,LoaderManager个实例通过onRetainNonConfigurationInstance()在活动之间传递。

答案 1 :(得分:1)

是的,为了获得loaderManager,它必须与一个活动相关联,但是可以使用加载器而不需要loaderManger。

1)实现AsynTaskLoader。
2)实例化你在课堂上实现的Loader。
3)为您的加载器注册一个监听器,以便在加载完成后获得回调。
4)调用loader的startLoading方法。
5)加载完成后,将调用回调方法,您可以将加载的数据用于任何目的。