LifecycleObserever con actividades en Android

LifecycleObserever is Observer es uno de los componentes de la arquitectura Jetpack y es una interfaz que observa y realiza la tarea especificada según los cambios del ciclo de vida del propietario del ciclo de vida. Por ejemplo, MainActivity tiene su propio ciclo de vida y es propietario del ciclo de vida y podemos implementar la interfaz LifecycleObserever y adjuntar este observador a MainActivity para que se puedan realizar ciertas operaciones a medida que cambia el ciclo de vida de MainActivity. En este artículo, se demostró cómo LifecycleObserever realiza las tareas a medida que cambia el ciclo de vida del propietario del ciclo de vida. Mire el siguiente video para obtener una descripción general de la discusión.

Nota: esta discusión se implementa utilizando el lenguaje Kotlin.

Pasos para implementar LifecycleObserever para la aplicación de Android

Paso 1: crear un proyecto de actividad vacío

Cree un proyecto de estudio de Android de actividad vacío y seleccione Kotlin como lenguaje de programación. Consulte Android | ¿Cómo crear/comenzar un nuevo proyecto en Android Studio?

Paso 2: Agregar las dependencias requeridas

Agregue las siguientes dependencias al archivo Gradle de nivel de aplicación. Las dependencias son del ciclo de vida.

// Solo ciclos de vida (sin ViewModel o LiveData)

implementación «androidx.lifecycle:lifecycle-runtime-ktx:2.3.1»

// Procesador de anotaciones

kapt «androidx.lifecycle:lifecycle-compilador:2.3.1»

Nota: La versión puede diferir en el futuro.

Y también habilite el complemento kapt dentro de los complementos en el archivo gradle de nivel de aplicación.

complementos {

   id ‘com.android.aplicación’

   id ‘kotlin-android’

   id ‘kotlin-kapt’

}

Si no puede saber cómo agregar dependencias, mire las siguientes imágenes.

Paso 3: trabajar con el archivo acitivity_main.xml

El diseño principal de la aplicación es el archivo activity_main.xml que contiene solo un TextView. Para implementar la interfaz de usuario, invoque el siguiente código dentro del archivo activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="128dp"
        android:text="GEEKSFORGEEKS"
        android:textSize="24sp" />
  
</LinearLayout>

Interfaz de usuario de salida:

Paso 4: Cree una clase que implemente LifecycleObserver

Cree una clase MainActivityObserver.kt que implemente la interfaz LifecycleObserver que contiene las funciones para realizar las tareas asignadas, a medida que cambia el ciclo de vida del propietario. En este caso, el propietario es MainActivity.kt , que tiene su propio ciclo de vida. a través de la siguiente clase se observan los cambios en el ciclo de vida de MainActivity . Invoque el siguiente código dentro del archivo MainActivityObserver.kt .

Kotlin

import android.util.Log
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
  
class MainActivityObserver : LifecycleObserver {
  
    private val TAG = javaClass.simpleName
  
    // To observe the onCreate state of MainActivity
    // and perform the assigned tasks
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreatePerformTask() {
        // here for demonstration purpose the Log messages are printed in logcat
        // one may perform their own custom tasks
        Log.i(TAG, "I\'m inside Observer of MainActivity ON_CREATE")
    }
  
    // To observe the onResume state of MainActivity
    // and perform the assigned tasks
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResumePerformTask() {
        // here for demonstration purpose the Log messages are printed in logcat
        // one may perform their own custom tasks
        Log.i(TAG, "I\'m inside Observer of MainActivity ON_RESUME")
    }
}

Paso 5: Adjuntar MainActivityObserver al archivo MainActivity.kt

Ahora es necesario informar la actividad adjuntando el observador MainActivityObserver para que las tareas deseadas se puedan realizar a medida que cambia el estado de la actividad. Invoque el siguiente código dentro del archivo MainActivity.kt .

Kotlin

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // attach the MainActivityObserver 
          // to the MainActivity as follows
        lifecycle.addObserver(MainActivityObserver())
    }
}

Producción: 

Aquí, la salida se muestra en el logcat , ya que hay una declaración de registro de información dentro de la clase de observador.

Publicación traducida automáticamente

Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *