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

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

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

谢谢P.

Solutions Collecting From Web of "我必须使用Fragments来获得LoaderManager吗?"

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

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

那么为什么这个数据pipe理function应该与UI小部件的select联系起来呢?

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

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

1)实现AsynTaskLoader。
2)实例化你在类中实现的加载器。
3)为你的加载器注册一个监听器,这样一旦加载完成,你将得到callback。
4)调用加载器的startLoading方法。
5)加载完成后,将调用callback方法,以便您可以将加载的数据用于任何目的。