我需要使用Fragment才能获取LoaderManager吗?

7
根据一些文件,我可以在Activity或Fragment中使用Loader,但兼容包仅显示FragmentActivity有getLoaderManager()方法。由于旧的managed cursor已被弃用,我们必须使用Cursor Loader。所以为什么这个数据管理函数要与UI小部件的选择绑定?对我来说毫无意义。感谢P。
2个回答

6
自从旧的managed cursor被弃用,我们必须使用Cursor Loader。
不,managed cursors仍然可用。在Android中,“deprecated”通常意味着“只要我们能支持这种机制,但我们认为有更好的选择”。
那么为什么这个数据管理函数要与UI小部件的选择绑定?
它并没有。您不必使用片段来继承FragmentActivity。您也可以创建自己的LoaderManagerCapableActivity,在其中克隆FragmentActivity的相关数据成员和方法(源代码位于硬盘上)。但是,LoaderManager必须与activity关联,因为它与activity生命周期绑定,就像managed cursors一样。例如,LoaderManager实例通过onRetainNonConfigurationInstance()在活动之间传递。

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接