Obtížný, ale správný způsob, jak toho dosáhnout, je vytvořit si vlastní ContentProvider
pro vaši aplikaci a aktualizujte všechna data přijatá z webových služeb a oznámení push do tohoto ContentProvider
. Když Activity
se vrátí do popředí, aktualizuje se novými daty poskytnutými ContentProvider
.
Je to těžké protože vytvoření vlastního ContentProvider
je hodně práce. Je to správné způsobem, protože je v souladu s chováním mobilních aplikací as architekturou Androidu:řekněme, že uživatel aktivuje webovou službu nebo nějakou výpočetně náročnou úlohu a poté aplikaci zavře; nebo řekněme, že přijde oznámení push a vyžaduje aktualizaci a zobrazení dat aplikace. V obou případech Activity
aplikace s již nemusí být v popředí, ale Service
lze použít k provedení některých operací mimo uživatelské rozhraní. Nyní na konci této operace Service
provádí změny dat prostřednictvím ContentProvider
a když uživatel aplikaci znovu aktivuje, zobrazí se Activity
s získají nová data z ContentProvider
.
Abych citoval oficiální tutoriál:
Poskytovatelé obsahu jsou standardním rozhraním, které propojuje data v jednom procesu s kódem spuštěným v jiném procesu.
Jako vývojář byste měli vždy předpokládat, že uživatel může aplikaci kdykoli vyvolat a kdykoli ji zavřít. Bez ohledu na to, zda Activity
je nebo není v popředí, je třeba data aplikace správně aktualizovat a udržovat.
Vlastní aplikace Google používají vlastní ContentProvider
s. Gmail
aplikace zejména využívá svého ContentProvider
získat nové e-maily, když je k dispozici připojení k síti, a zobrazovat e-maily offline. Facebook
, WhatsApp
a Twitter
Aplikace pro Android také využívají ContentProvider
s.