Глобальный загрузчик (LoaderManager) для повторного использования в нескольких действиях/фрагментах

Чего я хотел бы добиться:

У меня есть два разных фрагмента. Я хотел бы, чтобы они оба отображали одни и те же данные в двух формах (в списке и на карту). Я бы хотел, чтобы они совместно использовали один загрузчик (в частности, AsyncTaskLoader). Все работает нормально, но загрузчик не используется повторно. Создается другой, и данные загружаются дважды.

Что я делаю:

В Fragmentя использую LoaderManager lm = getActivity().getSupportLoaderManager(); В обоих я реализую LoaderCallbacks>и необходимые методы. В обоих я использую lm.initLoader(0, args, this);.

Но когда я вывожу lm.toString(), оказывается, что это два разных загрузчика. И данные загружаются дважды.

Как повторно подключиться к тому же загрузчику из другого действия/фрагмента, отличного от того, в котором он был запущен?

Это должно быть возможно, поскольку контекст в любом случае прикрепляется к загрузчику при каждом onCreate(), например при изменении конфигурации.

16
задан Michał K 29 January 2013 в 22:31
поделиться