Global Loader (LoaderManager) do ponownego wykorzystania w wielu działaniach / fragmentach
Co chciałbym osiągnąć:
Mam dwa różne fragmenty. Chciałbym, aby oba pokazywały te same dane w dwóch formach (na liście i na mapie). Chciałbym, aby udostępnili jeden program ładujący (AsyncTaskLoader
w szczególności). Wszystko działa dobrze, ale program ładujący nie jest ponownie używany. Zostanie utworzony inny i dane zostaną załadowane dwukrotnie.
Co robię:
wFragment
s używamLoaderManager lm = getActivity().getSupportLoaderManager();
W obu z nich implementujęLoaderCallbacks<ArrayList<Item>>
i wymagane metody. W obu używamlm.initLoader(0, args, this);
.
Ale kiedy wyprowadzamlm.toString()
wydaje się, że są to dwie różne ładowarki. Dane są pobierane dwukrotnie.
Jak ponownie połączyć się z tym samym programem ładującym z innego działania / fragmentu niż ten, w którym został uruchomiony?
Powinno być możliwe, ponieważ kontekst jest i tak dołączony do Loadera na każdymonCreate()
, np. o zmianie konfiguracji.