{"id":914,"date":"2018-12-29T18:31:33","date_gmt":"2018-12-29T17:31:33","guid":{"rendered":"http:\/\/chezdom.net\/etu\/?page_id=914"},"modified":"2020-01-13T23:50:12","modified_gmt":"2020-01-13T22:50:12","slug":"sujet-4-services","status":"publish","type":"page","link":"https:\/\/chezdom.net\/etu\/android-sujets\/sujet-4-services\/","title":{"rendered":"Sujet #4 &#8211; Services"},"content":{"rendered":"<p>Il s&rsquo;agit d&rsquo;un composant d&rsquo;application correspondant soit \u00e0 une<br \/>\nop\u00e9ration n&rsquo;ayant pas besoin d&rsquo;interaction avec un utilisateur, soit<br \/>\nde fournir une fonctionnalit\u00e9 a d&rsquo;autres applications. Un service n&rsquo;a<br \/>\ndonc pas d&rsquo;\u00e9cran associ\u00e9 (il est juste d\u00e9fini dans un fichier java et<br \/>\nn&rsquo;a donc pas de fichier xml de layout).<\/p>\n<p>L&rsquo;exemple typique consiste \u00e0 jouer un son : si le son est jou\u00e9 dans<br \/>\nune activit\u00e9, lorsque l&rsquo;on va sortir de l&rsquo;activit\u00e9 le son cesse d&rsquo;\u00eatre<br \/>\njou\u00e9. L&rsquo;utilisation d&rsquo;un service va donc permettre de continuer \u00e0<br \/>\njouer le son lorsqu&rsquo;on aura chang\u00e9 d&rsquo;activit\u00e9 ou qu&rsquo;on aura \u00e9teint<br \/>\nl&rsquo;\u00e9cran.<\/p>\n<p>Dans la pratique, une activit\u00e9 va d\u00e9marrer le son. C&rsquo;est sur cette<br \/>\nactivit\u00e9 que se trouve l&rsquo;interface utilisateur : boutons <code>play\/pause<\/code>,<br \/>\n<em>etc.<\/em> Lorsque l&rsquo;utilisateur appuie sur <code>play<\/code>, l&rsquo;activit\u00e9 lance le<br \/>\nservice qui va jouer le son. L&rsquo;utilisateur peut alors sortir de<br \/>\nl&rsquo;activit\u00e9, utiliser d&rsquo;autres activit\u00e9s ou m\u00eame \u00e9teindre<br \/>\nl&rsquo;\u00e9cran. Lorsque que l&rsquo;utilisateur revient vers l&rsquo;activit\u00e9 initiale et<br \/>\nappuie sur stop, cette dernier envoie un message au service pour<br \/>\narr\u00eater le son.<\/p>\n<p>Attention on ne demande pas de faire une activit\u00e9 capable de jouer un<br \/>\nson ici ! C&rsquo;est juste un exemple.<\/p>\n<h2>Application de d\u00e9mo<\/h2>\n<p>Cr\u00e9er une application de test comprenant un service capable d&rsquo;afficher<br \/>\ndes toasts r\u00e9guli\u00e8rement, et une activit\u00e9 avec un bouton pour d\u00e9marrer<br \/>\net arr\u00eater ce service.<\/p>\n<p>ps: dans un premier temps, le moyen le plus rapide pour cr\u00e9er un timer<br \/>\nest d&rsquo;utiliser la m\u00e9thode propos\u00e9e dans ce post<br \/>\n<a href=\"http:\/\/www.mopri.de\/2010\/timertask-bad-do-it-the-android-way-use-a-handler\/\">http:\/\/www.mopri.de\/2010\/timertask-bad-do-it-the-android-way-use-a-handler\/<\/a><\/p>\n<h2>Pr\u00e9sentation<\/h2>\n<p>Expliquer ce qu&rsquo;est un service, comment cr\u00e9er et lancer un service.<\/p>\n<p><a href=\"http:\/\/chezdom.net\/etu\/android-sujets-2019-2020\/\">Retour aux sujets<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il s&rsquo;agit d&rsquo;un composant d&rsquo;application correspondant soit \u00e0 une op\u00e9ration n&rsquo;ayant pas besoin d&rsquo;interaction avec un utilisateur, soit de fournir une fonctionnalit\u00e9 a d&rsquo;autres applications. Un service n&rsquo;a donc pas d&rsquo;\u00e9cran associ\u00e9 (il est juste d\u00e9fini dans un fichier java<span class=\"ellipsis\">&hellip;<\/span> <span class=\"read-more\"><a href=\"https:\/\/chezdom.net\/etu\/android-sujets\/sujet-4-services\/\">Lire la suite &#8250;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":903,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-914","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9qu1A-eK","_links":{"self":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/comments?post=914"}],"version-history":[{"count":2,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/914\/revisions"}],"predecessor-version":[{"id":1143,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/914\/revisions\/1143"}],"up":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/903"}],"wp:attachment":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/media?parent=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}