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.