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.