Contexto de actividad VS getApplicationContext(): ¿Cuándo utilizarlo?

shape
shape
shape
shape
shape
shape
shape
shape

Cualquier desarrollador Android se ha encontrado con el problema de tener que utilizar la referencia de la propia Actividad en lugar de utilizar getApplicationContext(). Tanto Activity como getApplicationContext() son instancias de Context, pero la diferencia es que Activity tiene el contexto de la propia Activity, y getApplicationContext() es el Contexto de la Aplicación.

Una aplicación Android tiene varios tipos de Contexto, tales como:

  • Actividad
  • Aplicación
  • Servicio
  • Receptor de emisiones
  • Proveedor de contenidos

¿Cuándo utilizar Activity, getApplicationContext() y etc?

Tras investigar un poco, encontré una tabla que indica cuándo utilizar cada caso:

Aplicación Actividad Servicio Proveedor de contenidos Receptor de emisiones
Mostrar un diálogo NO NO NO NO
Iniciar una actividad NO1 NO1 NO1 NO1
Inflación del trazado NO2 NO2 NO2 NO2
Iniciar un servicio
Vinculación a un servicio NO
Enviar una emisión
Registrar BroadcastReceiver NO3
Valores de los recursos de carga

 

  1. Una aplicación PUEDE iniciar una Actividad desde aquí, pero requiere que se cree una nueva tarea. Esto puede ajustarse a casos de uso específicos, pero puede crear comportamientos de pila posterior no estándar en su aplicación y, por lo general, no se recomienda ni se considera una buena práctica.
  2. Esto es legal, pero la inflación se hará con el tema por defecto para el sistema en el que se está ejecutando, no lo que está definido en su aplicación.
  3. Permitido si el receptor es nulo, que se utiliza para obtener el valor actual de una emisión pegajosa, en Android 4.2 y superiores.

Fuente: https://possiblemobile.com/2013/06/context/

Deja una respuesta

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