{"id":910,"date":"2014-09-19T13:23:26","date_gmt":"2014-09-19T11:23:26","guid":{"rendered":"http:\/\/www.informaweb.it\/it\/?p=910"},"modified":"2018-05-23T15:05:07","modified_gmt":"2018-05-23T13:05:07","slug":"android-activity-lifecycle-quale-ciclo-vita-app-android","status":"publish","type":"post","link":"https:\/\/www.informaweb.it\/it\/coding-pensiero-computazionale\/android-activity-lifecycle-quale-ciclo-vita-app-android","title":{"rendered":"Android Activity Lifecycle Qual \u00e8 il ciclo di vita di una App?"},"content":{"rendered":"<p>Bisogna sapere che un app Android \u00e8 organizzata in cosiddette <strong>Activity<\/strong> (attivit\u00e0). All\u2019avvio di un app il sistema Android definisce una serie di metodi del ciclo di vita per l\u2019attivit\u00e0 in cui si imposta l\u2019interfaccia utente e altri componenti (\u00a0Android Activity Lifecycle ). Se l\u2019utente esegue un\u2019azione che inizia un\u2019altra attivit\u00e0 o passa a un\u2019altra applicazione, il sistema chiamer\u00e0 un altro insieme di metodi del ciclo di vita sulla vostra attivit\u00e0, spostando l\u2019<em>attivit\u00e0 in background<\/em> (dove l\u2019attivit\u00e0 non \u00e8 pi\u00f9 visibile, ma l\u2019istanza e il suo stato rimangono intatti).\u00a0E cosi possibile dichiarare come un attivit\u00e0 deve comportarsi per esempio,se si sta costruendo un lettore video in streaming, \u00e8 possibile mettere in pausa il video e terminare la connessione di rete quando l\u2019utente passa a un\u2019altra applicazione. Quando l\u2019utente ritorna, \u00e8 possibile riconnettersi alla rete e consentire all\u2019utente di riprendere il video dallo stesso punto.<\/p>\n<p style=\"text-align: center;\"><strong>comprendiamo il ciclo di vita di un app\u00a0Android Activity Lifecycle<\/strong><\/p>\n<p><a href=\"http:\/\/www.androidiani.com\/wp-content\/uploads\/2014\/09\/basic-lifecycle.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-218590 aligncenter\" src=\"https:\/\/www.androidiani.com\/wp-content\/uploads\/2014\/09\/basic-lifecycle-300x133.png\" alt=\"basic-lifecycle\" width=\"435\" height=\"193\" title=\"\"><\/a><\/p>\n<blockquote><p>Questa figura \u00e8 un illustrazione semplificata del ciclo di vita di una app e mette in mostra gli stati che pu\u00f2 assumere un attivit\u00e0 durante interazione con l\u2019utente.<\/p><\/blockquote>\n<p style=\"text-align: justify;\"><span class=\"hps\">A seconda della complessit\u00e0<\/span> <span class=\"hps\">della vostra attivit\u00e0<\/span>, <span class=\"hps\">probabilmente<\/span> <span class=\"hps\">non sar\u00e0 necessario<\/span> <span class=\"hps\">implementare tutti i metodi<\/span> <span class=\"hps\">del ciclo di vita<\/span>. <span class=\"hps\">Tuttavia i<\/span><span class=\"hps\">mplementare<\/span> i <span class=\"hps\">metodi<\/span> <span class=\"hps\">del ciclo di vita<\/span> <span class=\"hps\">assicura<\/span> <span class=\"hps\">che<\/span><span class=\"hps\"> l\u2019applicazione<\/span> <span class=\"hps\">si comporta<\/span> <span class=\"hps\">bene<\/span> <span class=\"hps\">in diverse occasioni tra cui:<\/span><\/p>\n<ul>\n<li style=\"text-align: justify;\"><span class=\"hps\">Evita il <\/span><span class=\"hps\"> crash<\/span> <span class=\"hps\">se<\/span> <span class=\"hps\">l\u2019utente riceve<\/span> <span class=\"hps\">una telefonata<\/span> <span class=\"hps\">o<\/span> <span class=\"hps\">passa ad<\/span> <span class=\"hps\">un altra applicazione.<\/span><\/li>\n<li style=\"text-align: justify;\"><span class=\"hps\">Elimina il consumo di<\/span> <span class=\"hps\">preziose risorse di sistema<\/span> <span class=\"hps\">quando l\u2019utente<\/span> <span class=\"hps\">non<\/span> <span class=\"hps\">sta<\/span> <span class=\"hps\">utilizzando app.<\/span><\/li>\n<li style=\"text-align: justify;\"><span class=\"hps\">Non si<\/span> <span class=\"hps\">perdono<\/span> <span class=\"hps\">i progressi<\/span> <span class=\"hps\">dell\u2019utente<\/span> <span class=\"hps\">se si lasciano<\/span> <span class=\"hps\">l\u2019app <\/span><span class=\"hps\">e si torna<\/span> <span class=\"hps\">ad essa<\/span> <span class=\"hps\">in un secondo momento<\/span>.<\/li>\n<li style=\"text-align: justify;\"><span class=\"hps\">Evitare il <\/span><span class=\"hps\">crash<\/span> <span class=\"hps\">o perdit\u00e0 <\/span> d<span class=\"hps\">i progressi<\/span> <span class=\"hps\">dell\u2019utente quando<\/span> <span class=\"hps\">lo<\/span> <span class=\"hps\">schermo ruota<\/span>.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Gli stati dell\u2019applicazioni pi\u00f9 importanti sono descritti in seguito e sono quelli che ogni applicazione assume per una durata di tempo maggiore.<\/p>\n<ul>\n<li><em><strong>RESUMED\u00a0<\/strong><\/em><span class=\"hps\">In questo stato<\/span>, <span class=\"hps\">l\u2019attivit\u00e0 \u00e8<\/span> <span class=\"hps\">in primo piano<\/span> <span class=\"hps\">e l\u2019utente<\/span> <span class=\"hps\">pu\u00f2 interagire <\/span> <span class=\"hps atn\">(A volte viene indicata come stato di <\/span><span class=\"hps\">\u201cesecuzione<\/span>\u201c.)<\/li>\n<li style=\"text-align: justify;\"><b><i>PAUSED\u00a0<\/i><\/b><span class=\"hps\">In questo stato<\/span>, <span class=\"hps atn\">l\u2019<\/span>attivit\u00e0 \u00e8 <span class=\"hps\">parzialmente<\/span> <span class=\"hps\">oscurata da<\/span> <span class=\"hps\">un\u2019altra attivit\u00e0<\/span>, <span class=\"hps atn\">l\u2019<\/span>altra attivit\u00e0 <span class=\"hps\">che \u00e8<\/span> <span class=\"hps\">in primo piano<\/span> <span class=\"hps\">\u00e8<\/span> <span class=\"hps\">semi<\/span><span class=\"atn\">&#8211;<\/span>trasparente <span class=\"hps\">o<\/span> <span class=\"hps\">non copre<\/span> <span class=\"hps\">l\u2019intero schermo<\/span>. <span class=\"hps\">L\u2019attivit\u00e0<\/span> <span class=\"hps\">di pausa<\/span> <span class=\"hps\">non riceve<\/span> <span class=\"hps\">l\u2019input dell\u2019utente<\/span> <span class=\"hps\">e non pu\u00f2 eseguire<\/span> nessun<span class=\"hps\"> codice<\/span>.<\/li>\n<li style=\"text-align: justify;\"><em><strong>STOPPED\u00a0<\/strong><\/em><span class=\"hps\">In questo stato<\/span>, <span class=\"hps atn\">l\u2019<\/span>attivit\u00e0 \u00e8 <span class=\"hps\">completamente<\/span> nascosta <span class=\"hps\">e<\/span> <span class=\"hps\">non<\/span> <span class=\"hps\">visibile all\u2019utente<\/span>; cio\u00e8 <span class=\"hps\">in background<\/span>. <span class=\"hps\">Durante l\u2019arresto<\/span>, <span class=\"hps atn\">l\u2019<\/span>istanza di attivit\u00e0 <span class=\"hps\">e tutte le sue<\/span> <span class=\"hps\">informazioni di stato<\/span> <span class=\"hps\">come<\/span> <span class=\"hps\">variabili membro<\/span> <span class=\"hps\">vengono salvati e quindi mantenuti<\/span>, <span class=\"hps\">ma<\/span> <span class=\"hps\">non<\/span> <span class=\"hps\">possono eseguire<\/span> <span class=\"hps\">alcun codice<\/span>.<\/li>\n<li style=\"text-align: justify;\"><span class=\"hps\">Gli<\/span> <span class=\"hps\">altri stati<\/span> <span class=\"hps atn\">(<em><strong><span style=\"color: #222222;\">Created and Started<\/span><\/strong><\/em><\/span>) <span class=\"hps\">sono transitori<\/span> <span class=\"hps\">e<\/span> <span class=\"hps\">il sistema<\/span> <span class=\"hps\">si muove<\/span> <span class=\"hps\">rapidamente<\/span> <span class=\"hps\">da loro<\/span> a uno stato<span class=\"hps\"> successivo<\/span> . Per esempio <span class=\"hps\">dopo che il<\/span> <span class=\"hps\">sistema chiama<\/span> <span class=\"hps\">onCreate<\/span> <span class=\"hps atn\">(<\/span>), <span class=\"hps\">chiama<\/span> <span class=\"hps\">subito<\/span> <span class=\"hps\">onStart<\/span> <span class=\"hps atn\">(<\/span>), <span class=\"hps\">che \u00e8<\/span> <span class=\"hps\">rapidamente<\/span> <span class=\"hps\">seguito da<\/span> <span class=\"hps\">onResume<\/span> <span class=\"hps atn\">(<\/span>).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Per maggiori informazioni visita <a href=\"http:\/\/developer.android.com\/training\/basics\/activity-lifecycle\/starting.html\" target=\"_blank\" rel=\"nofollow noopener\">questo link<\/a> della guida ufficiale android.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bisogna sapere che un app Android \u00e8 organizzata in cosiddette Activity (attivit\u00e0). All\u2019avvio di un app il sistema Android definisce [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":918,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[747],"tags":[16],"class_list":["post-910","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding-pensiero-computazionale","tag-android"],"_links":{"self":[{"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/posts\/910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/comments?post=910"}],"version-history":[{"count":0,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/posts\/910\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/media\/918"}],"wp:attachment":[{"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/media?parent=910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/categories?post=910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.informaweb.it\/it\/wp-json\/wp\/v2\/tags?post=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}