back to top

Le Activity – Guida Sviluppo App Android

Nelle lezioni precedenti abbiamo appreso che un’activity è essenzialmente una finestra che contiene l’interfaccia utente di un’applicazione ed il suo scopo è quello di permettere un’interazione con gli utenti. Un’applicazione può avere zero o più activity anche se solitamente almeno una è presente. Dal momento in cui un’activity compare sullo schermo al momento in cui scompare essa passa attraverso una serie di stati, il cosiddetto ciclo di vita (life cycle). Comprendere il ciclo di vita di un’activity è fondamentale per assicurarci che le nostre applicazioni funzionino correttamente.

Il ciclo di vita di un’activity

Per creare un’activity occorre definire una classe Java che estende la classe base Activity, la quale definisce una serie di eventi che governano il ciclo di vita dell’activity stessa:

  • onCreate – Si verifica quando l’activity viene creata
  • onStart – Si verifica quando l’activity diviene visibile all’utente
  • onResume – Si verifica quando l’activity avvia l’interazione con l’utente
  • onPause – Si verifica quando la corrente activity viene messa in pausa e una precedente activity viene riattivata
  • onStop – Si verifica quando un’activity non è più visibile all’utente
  • onDestroy – Si verifica prima che l’activity venga distrutta dal sistema
  • onRestart – Si verifica quando l’activity viene arrestata e riavviata

Di seguito un’immagine che riassume il ciclo di vita di un’activity con la sequenza dei suddetti eventi

Come impostazione predefinita quando viene creata una nuova activity essa contiene già l’evento onCreate, il cui codice serve a visualizzare gli elementi dell’interfaccia utente.

Creiamo un’actvity

Per comprendere meglio la varie fasi di un’activity il modo migliore è quello di creare un nuovo progetto, implementare i vari eventi e poi sottoporre l’activity alle varie interazioni da parte dell’utente.

Avviamo dunque Eclipse e creiamo un nuovo progetto Android denominato TestActivity proseguiamo lasciando creare automaticamente all’IDE l’activity predefinita (denominata activity_main, se abbiamo lasciato le diciture predefinite)

Apriamo ora il file MainActivity.java che, come abbiamo visto in precedenza, è contenuto nella cartella src del nostro progetto e vediamo al suo interno il seguente codice

Adesso modifichiamo il codice della classe nel modo seguente e premiamo F11 per avviare il debug dell’applicazione

package com.example.testactivity;

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


public class MainActivity extends Activity 
{
  String tag = "Ciclo eventi";
  @Override

  protected void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(tag, "Evento onCreate()");
  }
  
  public void onStart()
  {
    super.onStart();
    Log.d(tag, "Evento onStart()");
  }
  
  public void onRestart()
  {
    super.onRestart();
    Log.d(tag, "Evento onRestart()");
  }
  
  public void onResume()
  {
    super.onResume();
    Log.d(tag, "Evento onResume()");
  }
  
  public void onPause()
  {
    super.onPause();
    Log.d(tag, "Evento onPause()");
  }
  
  public void onStop()
  {
    super.onStop();
    Log.d(tag, "Evento onStop()");
  }
  
  public void onDestroy()
  {
    super.onDestroy();
    Log.d(tag, "Evento onDestroy()");
  }
}

Se è tutto corretto, all’avvio dell’applicazione nella finestra LogCat dell’IDE dovremmo vedere qualcosa del genere

In pratica vediamo il susseguirsi degli eventi all’avvio della nostra applicazione. Se nell’emulatore clicchiamo sul tasto "Back" vediamo attivarsi altri eventi

E così via, potete provare a riavviare l’applicazione, a cliccare sul pulsante del telefono quando l’applicazione è attiva e a fare altre operazioni che vi facciano comprendere l’ordine degli eventi. Vi faccio notare che nella finestra LogCat ho impostato un filtro per visualizzare solo i messaggi provenienti dalla nostra applicazione.

Come possiamo vedere tramite questo semplice evento, un’activity viene distrutta quando si clicca sul pulsante Back del dispositivo. Altre cosa da sottolineare è che quando un’activity viene avviata vengono sempre chiamati i metodi onStart e onResume, indipendentemente dal fatto che l’activity sia ripristinata da uno stato di pausa o creata nuovamente. Quando essa viene creata nuovamente viene ovviamente chiamato anche il metodo onCreate.

Conclusioni

Detto questo, possiamo definire alcune semplici linee guida per lo sviluppo delle nostre applicazioni:

  • Utilizzare il metodo onCreate per creare ed instanziare gli oggetti che verranno utilizzati nella nostra applicazione
  • Utilizzare il metodo onResume per avviare ogni servizio o componente che necessita di essere eseguito mentre l’activity è in uso
  • Utilizzare il metodo onPause per terminare ogni servizio o componente non necessario mentre l’activity non è in uso
  • Utilizzare il metodo onDestroy per liberare risorse prima che l’activity sia distrutta

Vi ricordo che ogni activity contenuta in un’applicazione deve essere dichiarata nel file AndroidManifest.xml

Pubblicità

In questa guida...