Global Loader (LoaderManager) para reutilização em várias atividades / fragmentos
O que eu gostaria de alcançar:
Eu tenho dois fragmentos diferentes. Eu gostaria que ambos mostrassem os mesmos dados em dois formulários (em uma lista e em um mapa). Eu gostaria que eles compartilhassem um Loader (AsyncTaskLoader
em particular). Tudo funciona bem, mas o Loader não é reutilizado. Outro é criado e os dados são carregados duas vezes.
O que eu faço:
NoFragment
eu usoLoaderManager lm = getActivity().getSupportLoaderManager();
Em ambos eu implementoLoaderCallbacks<ArrayList<Item>>
e os métodos requeridos. Em ambos eu usolm.initLoader(0, args, this);
.
Mas quando eu faço a saídalm.toString()
parece que estes são dois carregadores diferentes. E os dados são baixados duas vezes.
Como se reconectar ao mesmo carregador de uma atividade / fragmento diferente daquele em que foi iniciado?
Deve ser possível, uma vez que o contexto é anexado ao carregador de qualquer maneira em todos osonCreate()
, por exemplo. na mudança de configuração.