Activities

Activities

  • La mayoría de aplicaciones están formadas por activities.
  • Cada activity se corresponde con una vista.
  • No tiene control de su cierre.
  • Heredan de la clase Activity ofrecida por el SDK.
  • Hay que declararla en el Android Manifest.
  • Durante su ejecución se mantienen en la pila de actividades.

Creando actividades

Para crear una actividad debemos crear una clase (objeto) que herede de Activity.

Debe implementar el método onCreate.

package org.jedi.activities;

import android.app.Activity;

public class MyActivity extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

onCreate()

  • Es llamado cada vez que se crea la actividad
  • Debemos asignar un layout (interfaz / vista) a la actividad.
  • Usaremos setContentView()

 

Ejercicio: 

Crear 3 activities que muestren un número y un botón.

Más adelante se llamarán entre ellas.

Activities en androidManifest

  • Hay que añadir un elemento Activity al manifest con los atributos android:name y android:label definidos.

 

 

 

  • El elemento <Activity>, el hijo más común que tendrá  es <Intent-Filter>
<Activity 
    android:name="NuevaSubclaseActivity" 
    android:label="Activity nueva">
</activity>

Activities en AndroidManifest

Ejercicio

Modifica el manifest para usar las diferentes activities como la activity por defecto al iniciar la app.

 

Lanzar actividades

  • Mediante intents.
  • Pueden ser conocidas o desconocidas.

 

Llamada Activity conocida:

 

 

Llamada Activity desconocida:

Intent intent = new Intent(getApplicationContext(), DosActivity.class);
startActivity(intent);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL,recipientArray);
startActivity(intent);

Ciclo de vida

  • Las apps en Android no controlan su ciclo de vida
  • Pueden ser destruidas en cualquier momento.
  • Tienen 3 estados: 
    • Resumed (En ejecución)
    • Paused
    • Stopped
  • Android nos proporciona varios métodos a implementar para gestionar el ciclo de vida

Estados

  • Resumed (Running): En ejecución
    • La activity está en la cima de la Pila, es visible y tiene el foco de atención.
  • Paused:
    • La activity es visible pero no tiene el foco, por ejemplo, si aparece un Dialog.
  • Stopped:
    • La activity deja de ser visible.

onCreate()

  • Cuando se inicia la activity
  • Se llama a este método en diferentes casos:
    • Creación de la activity.
    • Sistema vuelve a crear la activity después de destruirla (debido a la necesidad de memoria).

onStart()

  • Cuando se empieza la actividad
  • Se llamará cuando una actividad vuelva del background
  • Casos posibles:
    • Inicio de la activity
    • Cambio de activity (de otra a la nuestra)

onResume()

  • Cuando se reanuda la activity
  • Se llamará para reanudar la activity pausada anteriormente.
  • Casos posibles:
    • Vuelta de pantalla bloqueada

onPause()

  • Cuando se pausa la actividad
  • Se llamará cuando la activity pierda el foco.
  • Casos posibles:
    • Pantalla bloqueada

onStop()

  • Cuando se para la activity
  • Se llama cuando la activity ya no es visible
  • Casos posibles:
    • Otra aplicación pasa a primer plano

onDestroy()

  • Cuando se destruye la activity
  • Se llamará cuando finalice la activity
  • Casos posibles:
    • Cambio de orientación de pantalla 
      • En este caso también se realiza un onCreate()
    • Cuando matemos a la activity

Esquema resumen

Ejercicio

Cuál es la secuencia de eventos del ciclo de vida cuando se gira la pantalla del móvil?

Usad los Logs para adivinarlo.

onResume
onPause
onStart
onDestroy
onCreate
onStop

Ejercicio (solución)

Cuál es la secuencia de eventos del ciclo de vida cuando se gira la pantalla del móvil?

 

onPause

onStop

onDestroy

onCreate

onStart

onResume

Guardar el estado de la Activity

Made with Slides.com