Трудният, но правилен начин да направите това е да създадете свой собствен персонализиран ContentProvider за вашето приложение и актуализирайте всички данни, получени от уеб услугите и насочени известия към този ContentProvider . Когато Activity се връща на преден план, той се актуализира с новите данни, предоставени от ContentProvider .
Трудно е защото правите персонализиран ContentProvider е много работа. Това е правилното начин, защото е в съответствие с поведението на мобилните приложения и с архитектурата на Android:да кажем, че потребителят активира уеб услуга или някаква задача с интензивно изчисление и след това отхвърля приложението; или кажете, че пристига push известие и изисква данните на приложението да бъдат актуализирани и показани. И в двата случая Activity на приложението s може вече да не е на преден план, а да е Service може да се използва за извършване на някои операции извън потребителския интерфейс. Сега в края на тази операция Service прави промени в данните чрез ContentProvider , и когато потребителят активира отново приложението, Activity получават новите си данни от ContentProvider .
За да цитирам официалния урок:
Доставчиците на съдържание са стандартният интерфейс, който свързва данни в един процес с код, изпълняван в друг процес.
Като разработчик винаги трябва да приемате, че потребителят може да извика приложение по всяко време и да го отхвърли по всяко време. Независимо дали е Activity е на преден план или не, данните на приложението трябва да бъдат правилно актуализирани и поддържани.
Собствените приложения на Google използват персонализиран ContentProvider с. Gmail приложението по-специално използва своя ContentProvider за да получавате нови имейли, когато е налична мрежова връзка и да показвате имейли офлайн. Facebook , WhatsApp &Twitter Приложенията за Android също използват ContentProvider с.