Un’app sulla vita di un’attività – Lezione 14 di Android

Mettiamo in pratica i concetti appresi nelle ultime lezioni e creiamo un’applicazione in grado di mostrare il ciclo di vita di un’attività. Realizziamo un nuovo programma Android e creiamo una nuova attività chiamata LifeCycleActivityDemo, l’applicazione dovrà stampare un messaggio ogni qualvolta l’activity cambierà lo stato. In Android, per stampare un messaggio al posto di System.out.println come accade in Java, viene utilizzata la classe Log. I messaggi vengono memorizzati grazie alla classe Log e possono essere suddivisi in cinque tipologie:

  1. e() per Error, viene utilizzato per salvare messaggi d’errore;
  2. w() per Warning, serve a memorizzare messaggi d’avvertimento;
  3. i() per Information, per salvare informazioni;
  4. d() per Debug, viene utilizzato per dei messaggi di debug utili al programmatore;
  5. v() per Verbose, per i messaggi verbose.

Trovate maggiori informazioni sulla classe Log nella guida ufficiale di Android.

Nella nostra applicazione, dovendo salvare informazioni generiche utilizzeremo il “livello” Information e lo faremo in questo modo:

  Log.i("NomeAttività", "Informazioni da salvare nel log dell'applicazione
         al livello informazioni");

Ecco il codice relativo a LifeCycleActivityDemo in cui per ogni fase del ciclo di vita dell’attività sovrascriviamo i metodi onCreate, onStart, e così via. Per ognuno di essi, richiamiamo il metodo di default della superclasse Activity ed infine salviamo un messaggio nella classe Log:

  package it.datrevo.lifecycleactivitydemo;

  import android.app.Activity;
  import android.os.Bundle;
  import android.util.Log;

  public class LifeCycleActivityDemo extends Activity
  {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
      super.onCreate(savedInstanceState);
      Log.i("LifeCycleActivityDemo", "Chiamata a onCreate()");
    }

    @Override
    protected void onRestart()
    {
      super.onRestart();
      Log.i("LifeCycleActivityDemo", "Chiamata a onRestart()");
    }

    @Override
    protected void onStart() {
      super.onStart();
      Log.i("LifeCycleActivityDemo", "Chiamata a onStart()");
    }

    @Override
    protected void onResume() {
      super.onResume();
      Log.i("LifeCycleActivityDemo", "Chiamata a onResume()");
    }

    @Override
    protected void onPause() {
      super.onPause();
      Log.i("LifeCycleActivityDemo", "Chiamata a onPause()");
    }

    @Override
    protected void onStop() {
      super.onStop();
      Log.i("LifeCycleActivityDemo", "Chiamata a onStop()");
    }

    @Override
    protected void onDestroy() {
      super.onDestroy();
      Log.i("LifeCycleActivityDemo", "Chiamata a onDestroy()");
    }
  }

Registriamo l’attività in AndroidManifest.xml e la segnaliamo come attività principale:

  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="it.datrevo.lifecycleactivitydemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
     android:minSdkVersion="8"
     android:targetSdkVersion="21" />

    <application
     android:icon="@drawable/icon"
     android:label="@string/app_name">
    <activity
     android:name=".LifeCycleActivityDemo"
     android:label="@string/app_name" >
     <intent-filter>
      <action android:name="android.intent.action.MAIN" />

      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

  </manifest>

Infine, dobbiamo inserire in res/values/strings.xml il nome dell’applicazione:

  <?xml version="1.0" encoding="utf-8"?>
  <resources>

    <string name="app_name">LifeCycleActivityDemo</string>

  </resources>

A questo punto, avviate l’applicazione e mandatela più volte in secondo piano ad esempio premendo il tasto Home, attivando altre applicazioni per poi ritornare alla nostra applicazione. Una volta terminata, tornate in Eclipse ed analizzate le informazioni visualizzate nella schermata Logcat in basso, oppure avviatelo in una specifica finestra con il comando adb logcat.

Logcat, ciclo di vita di un'attività

Come si può notare l’attività ha continuato cambiato lo stato, è stata creata, è stata messa in pausa, è stata stoppata ed infine è stata uccisa.

Indice Lezione PrecedenteLezione Successiva

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *