【问题标题】:Must I use Fragments to get a LoaderManager?我必须使用 Fragments 来获取 LoaderManager 吗?
【发布时间】:2011-09-30 04:21:23
【问题描述】:

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

由于旧的托管游标已被弃用,我们必须使用游标加载器。那么为什么要把这个数据管理功能与 UI 小部件的选择联系起来呢?这对我来说毫无意义。

谢谢 P.

【问题讨论】:

    标签: android android-loadermanager


    【解决方案1】:

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

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

    那么为什么要将此数据管理功能与 UI 小部件的选择联系起来呢?

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-01-26
        • 2013-10-05
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 1970-01-01
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多