Должен ли я использовать фрагменты, чтобы получить LoaderManager? - PullRequest
7 голосов
/ 30 сентября 2011

Согласно некоторым документам, я могу использовать Loader в Activity или Fragment, но пакет совместимости показывает, что только FragmentActivity имеет метод getLoaderManager ().

Поскольку старый управляемый курсор устарел, мы должны использовать Cursor Loader. Так почему же эта функция управления данными должна быть связана с выбором виджетов пользовательского интерфейса? Это не имеет смысла для меня.

спасибо П.

Ответы [ 2 ]

6 голосов
/ 30 сентября 2011

Поскольку старый управляемый курсор устарел, мы должны использовать загрузчик курсоров.

Нет, управляемые курсоры все еще работают. Обычно «не рекомендуется» в Android означает «мы будем поддерживать этот механизм так долго, как сможем, но мы думаем, что есть лучшие варианты».

Так почему эта функция управления данными должна быть связана с выбором виджетов пользовательского интерфейса?

Это не так. Вам не нужно использовать фрагменты для наследования от FragmentActivity. Вы также можете создать свой собственный LoaderManagerCapableActivity, в котором вы клонируете соответствующие элементы данных и методы из FragmentActivity (исходный код находится на вашем жестком диске). Однако LoaderManager имеет , который должен быть связан с действием, поскольку он связан с жизненным циклом действия, как и управляемые курсоры. Например, LoaderManager экземпляры передаются между действиями через onRetainNonConfigurationInstance().

1 голос
/ 04 октября 2012

Да, для получения loaderManager он должен быть связан с действием, однако можно использовать загрузчики без необходимости в loaderManger.1) Реализовать AsynTaskLoader.2) Создайте загрузчик, который вы внедрили в своем классе.3) Зарегистрируйте прослушиватель для вашего загрузчика, чтобы вы получили обратный вызов после завершения загрузки.4) Вызвать метод startLoading загрузчика.5) После завершения загрузки будет вызван метод обратного вызова, в котором вы можете использовать загруженные данные для любых целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...