2011-09-30 18 views
7

根据一些文档,我可以在Activity或Fragment中使用Loader,但Compatibility Package显示只有FragmentActivity具有getLoaderManager()方法。我必须使用Fragments来获得LoaderManager吗?

由于旧的托管游标已被弃用,我们必须使用游标加载器。那么为什么这个数据管理功能应该与UI小部件的选择联系起来呢?对我来说完全是无稽之谈。

感谢 P.

回答

6

由于旧的管理光标已被弃用,我们必须使用游标加载。

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

那么为什么这个数据管理函数应该与UI小部件的选择挂钩呢?

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

1

是的,为了获得loaderManager,它必须与一个活动相关联,但是可以在不需要loaderManger的情况下使用loader。

1)实现AsynTaskLoader。
2)实例化您在类中实现的加载器。
3)为加载程序注册一个侦听器,以便在加载完成后获得回调。
4)调用加载器的startLoading方法。
5)加载完成后,将调用回调方法,以便您可以将加载的数据用于任何目的。