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:
- e() per Error, viene utilizzato per salvare messaggi d’errore;
- w() per Warning, serve a memorizzare messaggi d’avvertimento;
- i() per Information, per salvare informazioni;
- d() per Debug, viene utilizzato per dei messaggi di debug utili al programmatore;
- 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:
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:
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:
<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:
<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.

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 Precedente – Lezione Successiva |