9. cvičení - Service

Cvičení na Eduxu

  • Po dokončení práce z MediaPlayerem nezapomeňte zavolat jeho metodu release() pro uvolnění zdrojů.
  • Mějte na paměti, že Service neběží v separátním procesu ani threadu, vše probíhá v main threadu aplikace.
    • Pokud chcete v Service provádět výpočetně náročnou práci, je vhodné v ní spustit nové vlákno nebo AsyncTask.
  • Vždy může běžet pouze jedna instance dané Service - při dalším startu se pouze znovu zavolá onStartCommand(…).
  • Nezapomeňte Service nadefinovat v souboru AndroidManifest.xml.
  • Service má takovou prioritu, jako je priorita bindnuté aplikace (pokud je aplikací více, tak nejvyšší z nich).
    • Čím vyšší priorita, tím spíše vám systém vaší Service nezabije.
    • Pokud v Service zavoláte startForeground(…), dostane tak prioritu jako „viditelná“ aplikace - tzn. nejvyšší.
      • To je vhodné pokud vaše Service dělá něco, o čem uživatel ví a zabití Service by mu vadilo, např. přehrávání hudby.
    • START_STICKY má vyšší prioritu než START_NOT_STICKY.
      • Systém by měl zabitou Service spuštěnou se START_STICKY automaticky obnovit, až bude mít znovu k dispozici zdroje.
        • Spoléhat se na to dá ale až od Honeycombu.
bi-and/cviceni/cviceni_9.txt · Poslední úprava: 2012/05/01 20:30 autor: cermak
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki