【发布时间】:2011-09-30 04:21:23
【问题描述】:
根据一些文档,我可以在 Activity 或 Fragment 中使用 Loader,但兼容性包显示只有 FragmentActivity 具有 getLoaderManager() 方法。
由于旧的托管游标已被弃用,我们必须使用游标加载器。那么为什么要把这个数据管理功能与 UI 小部件的选择联系起来呢?这对我来说毫无意义。
谢谢 P.
【问题讨论】:
标签: android android-loadermanager
根据一些文档,我可以在 Activity 或 Fragment 中使用 Loader,但兼容性包显示只有 FragmentActivity 具有 getLoaderManager() 方法。
由于旧的托管游标已被弃用,我们必须使用游标加载器。那么为什么要把这个数据管理功能与 UI 小部件的选择联系起来呢?这对我来说毫无意义。
谢谢 P.
【问题讨论】:
标签: android android-loadermanager
由于旧的托管游标已被弃用,我们必须使用游标加载器。
不,托管游标仍然有效。通常,Android 中的“已弃用”意味着“我们会尽可能支持这种机制,但我们认为还有更好的选择”。
那么为什么要将此数据管理功能与 UI 小部件的选择联系起来呢?
不是。您不必使用片段从FragmentActivity 继承。也欢迎您创建自己的LoaderManagerCapableActivity,从FragmentActivity 克隆相关数据成员和方法(源代码在您的硬盘上)。但是,LoaderManager 必须 与活动相关联,因为它与活动生命周期相关联,托管游标也是如此。例如,LoaderManager 实例通过onRetainNonConfigurationInstance() 在活动之间传递。
【讨论】:
是的,为了获得 loaderManager,它必须与一个活动相关联,但是可以在不需要 loaderManger 的情况下使用加载器。
1) 实现 AsynTaskLoader。
2)实例化你在你的类中实现的加载器。
3) 为您的加载程序注册一个侦听器,以便加载完成后您将获得回调。
4)调用loader的startLoading方法。
5)加载完成后,将调用回调方法,您可以将加载的数据用于任何目的。
【讨论】: