====== 9. cvičení - Service ====== [[https://edux.fit.cvut.cz/courses/BI-AND/tutorials/09/start|Cvičení na Eduxu]] * {{:bi-and:cviceni:tutorial09_hotove.zip|Eclipse project z 9. cvičení}} * 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.