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