{"id":4846,"date":"2013-05-02T12:59:33","date_gmt":"2013-05-02T11:59:33","guid":{"rendered":"http:\/\/www.iprog.it\/blog\/?p=4846"},"modified":"2013-05-02T12:59:33","modified_gmt":"2013-05-02T11:59:33","slug":"activity-e-ciclo-di-vita-in-applicazione-android","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/","title":{"rendered":"Activity e ciclo di vita in applicazione Android"},"content":{"rendered":"<p>Una activity \u00e8 il componente fondamentale attraverso il quale una applicazione interagisce con l\u2019utente. Pu\u00f2 a tutti gli effetti essere paragonata ad una form dei linguaggi tradizionali (visual basic) o ad una semplice pagina html visualizzata da un browser.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png\" rel=\"lightbox[4846]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4856\" alt=\"android-activity-lifetime-602x486\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486-300x242.png\" width=\"300\" height=\"242\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486-300x242.png 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png 602w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>In questa guida ci concentreremo sulle\u00a0<strong>Activity<\/strong>\u00a0e sul<strong>ciclo di vita di un\u2019applicazione Android<\/strong>, concetti fondamentali se volete intraprendere la strada della programmazione android.<\/p>\n<h3>Cos&#8217;\u00e8 un Activity?<\/h3>\n<p>Stando alla documentazione ufficiale, un\u2019attivit\u00e0 \u00e8 \u201cuna singola e precisa cosa che l\u2019utente pu\u00f2 fare\u201d. Proviamo ad indagare le implicazioni di questa affermazione. Partiamo dal fatto che l\u2019utente, per fare qualcosa, deve interagire con il dispositivo. Domandiamoci come avvenga, nel caso di uno smartphone, l\u2019interazione tra l\u2019uomo e la macchina. Un ruolo essenziale, naturalmente, \u00e8 svolto dai meccanismi di input come la tastiera ed il touchscreen, che permettono all\u2019utente di specificare il proprio volere. Le periferiche di input, tuttavia, da sole non bastano. Affinch\u00e9 l\u2019utente sappia cosa pu\u00f2 fare e come debba farlo, ma anche affinch\u00e9 il software possa mostrare all\u2019utente il risultato elaborato, \u00e8 necessario un canale aggiuntivo. Nella maggior parte dei casi questo canale \u00e8 il display. Nella superficie dello schermo il software disegna tutti quegli oggetti con cui l\u2019utente pu\u00f2 interagire (bottoni, men\u00f9, campi di testo), e sempre sullo schermo viene presentato il risultato dell\u2019elaborazione richiesta. Il ragionamento ci porta alla conclusione che, per fare qualcosa con il dispositivo, \u00e8 necessario usare lo schermo. Esiste perci\u00f2 un parallelo tra il concetto di attivit\u00e0, in Android, e quello di finestra, in un sistema desktop, bench\u00e9 non siano esattamente la stessa cosa.<\/p>\n<p>Riassumendo: \u00a0<strong>Un\u2019activity \u00e8 in parole povere una finestra che contiene l\u2019interfaccia dell\u2019applicazione<\/strong>.<\/p>\n<p>Un\u2019applicazione pu\u00f2 avere una o pi\u00f9 activity. Lo scopo principale di un\u2019activity \u00e8\u00a0<strong>gestire l\u2019interazione tra l\u2019utente e l\u2019applicazione<\/strong>. Dal momento in cui lanciamo l\u2019applicazione fino al momento in cui la mandiamo in background, l\u2019activity passa attraverso varie fasi, da qui il ciclo di vita di un\u2019app android.\u00a0<strong>Capire il ciclo di vita di un\u2019activity \u00e8 fondamentale per assicurare un corretto funzionamento della vostra applicazione<\/strong>.<\/p>\n<p>Quando creaiamo un progetto android, Eclipse crea automaticamente per noi l\u2019activity:<\/p>\n<p>[code lang=&#8221;java&#8221;]import android.app.Activity;<\/p>\n<p>import android.os.Bundle;<br \/>\nimport android.util.Log;<\/p>\n<p>public class HelloWorldActivity extends Activity {<br \/>\n \/** Called when the activity is first created. *\/<br \/>\n @Override<br \/>\n public void onCreate(Bundle savedInstanceState) {<br \/>\n super.onCreate(savedInstanceState);<br \/>\n setContentView(R.layout.main);<br \/>\n }<\/p>\n<p>}[\/code]<\/p>\n<p>Come vedete la nostra classe\u00a0<em>HelloWorldActivity<\/em>\u00a0estende la super classe\u00a0<em>Activity<\/em>\u00a0ed il metodo\u00a0<em>onCreate<\/em>\u00a0si occupa di implementare l\u2019interfaccia della classe padre, caricando la UI definita nel nostro file<em>res\/layout\/main.xml<\/em>\u00a0(in realt\u00e0 potete chiamarlo come vi pare) attraverso l\u2019istruzione<em>setContentView(R.layout.main);<\/em>\u00a0.<\/p>\n<h3>Il ciclo di vita<\/h3>\n<p>In un sistema desktop il monitor \u00e8 sufficientemente spazioso da poter mostrare pi\u00f9 finestre simultaneamente. Perci\u00f2 non \u00e8 affatto raro lavorare con pi\u00f9 programmi contemporaneamente attivi, \u00a0le cui finestre vengono affiancate o sovrapposte. Gli smartphone, invece, funzionano diversamente.<\/p>\n<p>La super classe\u00a0<em>Activity<\/em>\u00a0definisce una serie di eventi che governano il ciclo di vita di un\u2019activity. Spetta poi alle classi che estendono da Activity implementarli. Questi eventi sono:<\/p>\n<ul>\n<li><strong><em>onCreate()<\/em><\/strong>\u00a0\u2014 chiamato quando l\u2019activity viene lanciata per la prima volta<\/li>\n<\/ul>\n<ul>\n<li><strong><em>onStart()<\/em><\/strong>\u00a0\u2014 chiamato quando l\u2019activity diventa visibile all\u2019utente<\/li>\n<\/ul>\n<ul>\n<li><strong><em>onResume()<\/em><\/strong>\u00a0\u2014 chiamato quando l\u2019activity inizia ad interagire con l\u2019utente<\/li>\n<\/ul>\n<ul>\n<li><strong><em>onPause()<\/em><\/strong>\u00a0\u2014 chiamato quando l\u2019attuale activity viene messa in pausa e un\u2019activity precedente viene ripristinata<\/li>\n<\/ul>\n<ul>\n<li><strong><em>onStop()<\/em><\/strong>\u00a0\u2014 chiamato quando l\u2019activity non \u00e8 pi\u00f9 visibile all\u2019utente<\/li>\n<\/ul>\n<ul>\n<li><strong><em>onDestroy()<\/em><\/strong>\u00a0\u2014 chiamato prima che l\u2019activity venga distrutta (manualmente o dal sistema operativo per liberare memoria)<\/li>\n<\/ul>\n<ul>\n<li><em><strong>onRestart()<\/strong><\/em>\u00a0\u2014 chiamato dopo che l\u2019activity era stata stoppata e quando \u00e8 pronta ad essere ripristinata<\/li>\n<\/ul>\n<p>La prassi richiede che, come prima riga di codice di ciascuno di questi metodi, si richiami \u00a0l\u2019implementazione di base del metodo che si sta ridefinendo. Ad esempio:<\/p>\n<p>[code lang=&#8221;java&#8221;]@Override<br \/>\nprotected void onStart() {<br \/>\nsuper.onStart();<br \/>\n\/\/ proprio codice a seguire<br \/>\n} [\/code]<\/p>\n<p>\u00c8 importante non dimenticarlo.<\/p>\n<p>Ecco lo schema direttamente dalla\u00a0<a href=\"http:\/\/developer.android.com\/guide\/components\/activities.html\" target=\"_blank\">documentazione\u00a0ufficiale<\/a>:<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/activity_lifecycle.png\" rel=\"lightbox[4846]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4849\" alt=\"activity_lifecycle\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/activity_lifecycle-232x300.png\" width=\"232\" height=\"300\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/activity_lifecycle-232x300.png 232w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/activity_lifecycle.png 513w\" sizes=\"auto, (max-width: 232px) 100vw, 232px\" \/><\/a><\/p>\n<p>Proviamo a capire il ciclo di vita di un\u2019activity con un esercizio. Caricate Eclipse e create un nuovo progetto chiamato HelloWorldActivity, proprio come fatto nella precedente guida. La versione dell\u2019applicazione android non \u00e8 importante ai fini di questo esercizio.<\/p>\n<p>Aprite il file\u00a0<em>HelloWorldActivity.java<\/em>\u00a0e aggiungete:<\/p>\n<p>[code lang=&#8221;java&#8221;]<\/p>\n<p>import android.app.Activity;<br \/>\nimport android.os.Bundle;<br \/>\nimport android.util.Log;<\/p>\n<p>public class HelloWorldActivity extends Activity {<br \/>\n \/** Called when the activity is first created. *\/<br \/>\n String tag = &quot;CicloDiVita&quot;;<br \/>\n @Override<br \/>\n public void onCreate(Bundle savedInstanceState) {<br \/>\n super.onCreate(savedInstanceState);<br \/>\n setContentView(R.layout.main);<br \/>\n Log.d(tag, &quot;Ciclo di vita completo in onCreate&quot;);<br \/>\n }<\/p>\n<p>public void onStart(){<br \/>\n super.onStart();<br \/>\n Log.d(tag, &quot;Ciclo di vita visible in onStart&quot;);<br \/>\n }<\/p>\n<p>public void onStop(){<br \/>\n super.onStart();<br \/>\n Log.d(tag, &quot;Ciclo di vita visible in onStop&quot;);<br \/>\n }<\/p>\n<p>public void onPause(){<br \/>\n super.onStart();<br \/>\n Log.d(tag, &quot;Ciclo di vita invisible in onPause&quot;);<br \/>\n }<\/p>\n<p>public void onResume(){<br \/>\n super.onStart();<br \/>\n Log.d(tag, &quot;Ciclo di vita invisible in onResume&quot;);<br \/>\n }<\/p>\n<p>public void onDestroy(){<br \/>\n super.onStart();<br \/>\n Log.d(tag, &quot;Ciclo di vita completo in onDestroy&quot;);<br \/>\n }<br \/>\n}[\/code]<\/p>\n<p>Adesso andiamo ad aprire l\u2019emulatore per provare l\u2019applicazione. Se non l\u2019avete gi\u00e0 fatto dovete creare un nuovo emulatore. Aprite l\u2019<strong>Android virtual device manager<\/strong>\u00a0(passo 1 nell\u2019immagine qui sotto), si aprir\u00e0 una finestra con tutti i virtual device che avete creato. Cliccate su new (passo 2) per aprire il creatore di virtual device, quindi mettete un nome per il virtual device ed una versione di android (la stessa dell\u2019applicazione che state creando), quindi create il virtual device (passo 3 e 4).<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/create-avd1.png\" rel=\"lightbox[4846]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4854\" alt=\"create-avd\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/create-avd1-188x300.png\" width=\"188\" height=\"300\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/create-avd1-188x300.png 188w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/create-avd1.png 635w\" sizes=\"auto, (max-width: 188px) 100vw, 188px\" \/><\/a><\/p>\n<p>Adesso che avete creato il vostro virtual device andiamo sulla finestra package explorer (sulla sinistra, dove c\u2019\u00e8 l\u2019albero dei file del progetto), cliccate con il tasto destro sul nome dell\u2019applicazione e selezionate run as-&gt;android application.<\/p>\n<p>Inizier\u00e0 a caricarsi il virtual device che avete creato. Ci metter\u00e0 pi\u00f9 o meno tempo in caricare\u00a0 a seconda della potenza del vostro computer, ma comunque mettetevi l\u2019anima in pace perch\u00e8 ci sono da aspettare minimo 5 minuti.<\/p>\n<p>Finito di caricare dovreste avere sullo schermo la vostra applicazione helloWorld (se non ce l\u2019avete fatela partire di nuovo senza chiudere l\u2019emulatore). Adesso tornate su eclipse ed aprite il\u00a0<strong>DDMS<\/strong>\u00a0(window-&gt;open perspective-&gt;DDMS). Siete ora nell\u2019ambiente per impartire direttive all\u2019emulatore (esempio simulare una chiamata) e per vedere i messaggi del log.<\/p>\n<p>L\u2019applicazione che avete appena creato genera dei messaggi nel log quando entra nelle varie fasi del ciclo di vita. \u00a0Provate a premere il tasto back sull\u2019emulatore e tornate sul DDMS. Nel log dovreste vedere qualcosa del tipo :<\/p>\n<blockquote><p>Ciclo di vita visible in onStop<br \/>\nCiclo di vita completo in onDestroy<\/p><\/blockquote>\n<p>Premendo il tasto back l\u2019activity \u00e8 entrata rispettivamente nel metodo\u00a0<em>onStop()<\/em>\u00a0e\u00a0<em>onDestroy()\u00a0<\/em>che contengono le istruzioni per generare una nuova entrata nel log (\u00a0<em>Log.d(tag, \u201cCiclo di vita visible in onStop\u201d);<\/em>\u00a0). Premendo il tasto home invece dovrebbe uscire qualcosa del tipo:<\/p>\n<blockquote><p>Ciclo di vita invisible in onPause<br \/>\nCiclo di vita visible in onStop<\/p><\/blockquote>\n<p>Provate a vedere cosa succede se, aprendo una differente app, tornate alla vostra activity tenendo premuto il tasto home.<\/p>\n<h3>Conclusioni<\/h3>\n<p>Conoscere e comprendere il ciclo di vita di un\u2019applicazione \u00e8 fondamentale se volete assicurare un corretto funzionamento della vostra applicazione. Android \u00e8 un sistema operativo multi tasking, l\u2019utente, oltre ad usare la vostra app, user\u00e0 altre 20 app contemporaneamente passando di una in una. Quindi \u00e8 necessario implementare un sistema per salvare lo stato dell\u2019applicazione ogni volta che viene messa in background e recuperarlo ogni volta che viene ripristinata l\u2019activity.<\/p>\n<p>Abbiamo concluso. Alla prossima.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una activity \u00e8 il componente fondamentale attraverso il quale una applicazione interagisce con l\u2019utente. Pu\u00f2 a tutti gli effetti essere paragonata ad una form dei linguaggi tradizionali (visual basic) o ad una semplice pagina html visualizzata da un browser. In questa guida ci concentreremo sulle\u00a0Activity\u00a0e sulciclo di vita di un\u2019applicazione&#8230; <a href=\"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":5,"featured_media":4856,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1008],"tags":[2379,1357,2083,1124,2081,2082,2084],"class_list":["post-4846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android","tag-ciclo-di-vita","tag-documentazione","tag-guida","tag-oncreate","tag-ondestoy","tag-rapida"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Activity e ciclo di vita in applicazione Android - iProg<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Activity e ciclo di vita in applicazione Android - iProg\" \/>\n<meta name=\"twitter:description\" content=\"Una activity \u00e8 il componente fondamentale attraverso il quale una applicazione interagisce con l\u2019utente. Pu\u00f2 a tutti gli effetti essere paragonata ad una form dei linguaggi tradizionali (visual basic) o ad una semplice pagina html visualizzata da un browser. In questa guida ci concentreremo sulle\u00a0Activity\u00a0e sulciclo di vita di un\u2019applicazione... Read more &raquo;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png\" \/>\n<meta name=\"twitter:creator\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/\"},\"author\":{\"name\":\"Fabio\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"headline\":\"Activity e ciclo di vita in applicazione Android\",\"datePublished\":\"2013-05-02T11:59:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/\"},\"wordCount\":1270,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/05\\\/android-activity-lifetime-602x486.png\",\"keywords\":[\"Android\",\"ciclo di vita\",\"documentazione\",\"Guida\",\"oncreate\",\"ondestoy\",\"rapida\"],\"articleSection\":[\"Android\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/\",\"name\":\"Activity e ciclo di vita in applicazione Android - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/05\\\/android-activity-lifetime-602x486.png\",\"datePublished\":\"2013-05-02T11:59:33+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/android\\\/activity-e-ciclo-di-vita-in-applicazione-android\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/05\\\/android-activity-lifetime-602x486.png\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/05\\\/android-activity-lifetime-602x486.png\",\"width\":602,\"height\":486},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\",\"name\":\"Fabio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"caption\":\"Fabio\"},\"description\":\"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+\",\"sameAs\":[\"http:\\\/\\\/www.fabiosoft.com\",\"https:\\\/\\\/www.facebook.com\\\/devfabionisci\\\/\",\"http:\\\/\\\/it.linkedin.com\\\/in\\\/fabionisci\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/fabiosoft\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Activity e ciclo di vita in applicazione Android - iProg","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/","twitter_card":"summary_large_image","twitter_title":"Activity e ciclo di vita in applicazione Android - iProg","twitter_description":"Una activity \u00e8 il componente fondamentale attraverso il quale una applicazione interagisce con l\u2019utente. Pu\u00f2 a tutti gli effetti essere paragonata ad una form dei linguaggi tradizionali (visual basic) o ad una semplice pagina html visualizzata da un browser. In questa guida ci concentreremo sulle\u00a0Activity\u00a0e sulciclo di vita di un\u2019applicazione... Read more &raquo;","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png","twitter_creator":"@iprogblog","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Fabio","Tempo di lettura stimato":"6 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/"},"author":{"name":"Fabio","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"headline":"Activity e ciclo di vita in applicazione Android","datePublished":"2013-05-02T11:59:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/"},"wordCount":1270,"commentCount":1,"image":{"@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png","keywords":["Android","ciclo di vita","documentazione","Guida","oncreate","ondestoy","rapida"],"articleSection":["Android"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/","url":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/","name":"Activity e ciclo di vita in applicazione Android - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png","datePublished":"2013-05-02T11:59:33+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/android\/activity-e-ciclo-di-vita-in-applicazione-android\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/05\/android-activity-lifetime-602x486.png","width":602,"height":486},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51","name":"Fabio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","caption":"Fabio"},"description":"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+","sameAs":["http:\/\/www.fabiosoft.com","https:\/\/www.facebook.com\/devfabionisci\/","http:\/\/it.linkedin.com\/in\/fabionisci"],"url":"https:\/\/www.iprog.it\/blog\/author\/fabiosoft\/"}]}},"views":5271,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/4846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=4846"}],"version-history":[{"count":0,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/4846\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/4856"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=4846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=4846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=4846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}