Trudnym, ale poprawnym sposobem, aby to zrobić, jest zbudowanie własnego niestandardowego ContentProvider
dla Twojej aplikacji i zaktualizuj wszystkie dane otrzymane z usług internetowych i powiadomień push do tego ContentProvider
. Kiedy Activity
wraca na pierwszy plan, aktualizuje się nowymi danymi dostarczonymi przez ContentProvider
.
To trudne ponieważ tworzenie niestandardowego ContentProvider
to dużo pracy. To jest poprawne sposób, ponieważ jest zgodny z zachowaniem aplikacji mobilnych i architekturą Androida:powiedzmy, że użytkownik aktywuje usługę sieciową lub jakieś zadanie wymagające dużej mocy obliczeniowej, a następnie odrzuca aplikację; lub powiedzmy, że nadchodzi powiadomienie push i wymaga aktualizacji i wyświetlenia danych aplikacji. W obu przypadkach Activity
aplikacji s może nie być już na pierwszym planie, ale Service
może służyć do wykonywania niektórych operacji niezwiązanych z interfejsem użytkownika. Teraz, pod koniec tej operacji, Service
wprowadza zmiany w danych za pomocą ContentProvider
, a gdy użytkownik ponownie aktywuje aplikację, Activity
s pobierają nowe dane z ContentProvider
.
Cytując oficjalny samouczek:
Dostawcy treści to standardowy interfejs, który łączy dane w jednym procesie z kodem działającym w innym procesie.
Jako programista zawsze powinieneś zakładać, że użytkownik może wywołać aplikację w dowolnym momencie i odrzucić ją w dowolnym momencie. Niezależnie od tego, czy Activity
jest na pierwszym planie, czy nie, dane aplikacji muszą być prawidłowo aktualizowane i konserwowane.
Własne aplikacje Google korzystają z niestandardowego ContentProvider
s. Gmail
w szczególności aplikacja korzysta ze swojego ContentProvider
aby otrzymywać nowe wiadomości e-mail, gdy połączenie sieciowe jest dostępne, i wyświetlać wiadomości w trybie offline. Facebook
, WhatsApp
&Twitter
Aplikacje na Androida również korzystają z ContentProvider
s.