sql >> Databáze >  >> RDS >> SQLite

Aktualizujte data aktivity ze služby, když je pozastavena

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.



  1. Node.js a Microsoft SQL Server

  2. Seskupení podle klauzule v mySQL a postgreSQL, proč chyba v postgreSQL?

  3. Odstranit duplikáty pouze pomocí dotazu MySQL?

  4. Spuštění Galera Cluster na Kubernetes