Diferencia entre intención implícita e intención explícita en Android

La intención es un objeto de mensajería que indica qué tipo de acción se debe realizar. El uso más significativo de la intención es el lanzamiento de la actividad. La intención es una estructura de datos pasiva que contiene una descripción abstracta de una acción a realizar. 

Cuerpo de intención:

Hay dos cosas importantes en la intención.

  • action: La acción general a realizar, como ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc.
  • datos: los datos sobre los que operar, como un registro de persona en la base de datos de contactos, se expresan como un Uri

Nota: El identificador uniforme de recursos (URI) es una string de caracteres que se utiliza para identificar un recurso. Un URI identifica un recurso por ubicación, por nombre o por ambos.

Tipos de intentos de Android

Hay dos tipos de intenciones en android: 

  1. implícito y
  2. Explícito.

1. Intención implícita

La intención implícita no especifica el componente. En tal caso, la intención proporciona información sobre los componentes disponibles proporcionados por el sistema que se va a invocar. Por ejemplo, puede escribir el siguiente código para ver la página web.

Intención intención=nueva Intención(Intent.ACTION_VIEW);  

intent.setData(Uri.parse(“https://www.geeksforgeeks.org”));  

iniciarActividad(intención);  

Ejemplo:

En las siguientes imágenes, no se especifica ningún componente, sino que se realiza una acción, es decir, se abrirá una página web. Mientras escribe el nombre de su página web deseada y haga clic en el botón ‘CLICK’. Su página web está abierta. 

Implicit Intent

2. Intención explícita

Intención explícita especifica el componente. En tal caso, la intención proporciona la clase externa que se invocará.

Intent i = new Intent(getApplicationContext(), ActivityTwo.class);  

iniciarActividad(i);  

Ejemplo: 

En el siguiente ejemplo, hay dos actividades (FirstActivity, SecondActivity). Cuando hace clic en el botón ‘IR A OTRA ACTIVIDAD’ en la Primera Actividad, entonces se mueve a la Segunda Actividad. Cuando hace clic en el botón ‘IR A LA ACTIVIDAD DE INICIO’ en la Segunda Actividad, entonces pasa a la primera actividad. Esto se está haciendo a través de intención explícita.

Nota : Para obtener más información sobre los tipos de intención con código de ejemplo, consulte Intentos implícitos y explícitos con ejemplos .

Ahora veamos cuáles son las principales diferencias entre estos dos.

Tabla de diferencias

Intención explícita

Intención implícita

Como ya se mencionó anteriormente, las intenciones explícitas son aquellas en las que el usuario tiene una visión clara y sabe exactamente qué actividad puede manejar las requests.

Ejemplo : cuando tenga una pantalla Listview al tocar cada elemento, irá a la actividad detallada  

Intención = Intención (AplicaciónContexto,DetalleActividad::clase.java)

actividad de inicio (intención) 

Las intenciones implícitas no nombran un componente específico como la intención explícita, sino que declaran una acción general a realizar, lo que permite que se maneje un componente de otra aplicación.

Ejemplo: cuando toca el botón Compartir en cualquier aplicación, puede ver Gmail, Bluetooth y otras opciones de aplicaciones para compartir. Aquí el usuario envía una solicitud es la solicitud de intención implícita que puede ser manejada por esta aplicación similar a Gmail, similar a Bluetooth.

La intención explícita puede realizar la acción específica de la aplicación establecida por el código, como cambiar la actividad, descargar el archivo en segundo plano, etc. Especifica la única acción que se realizará y no especifica directamente los componentes de Android.

En intención explícita, puede pasar datos a otras actividades utilizando el método putExtra y recuperarlos utilizando getIntent().

Ejemplo:

val intent = Intent(this, SecondActivity:: class.java).apply{

putExtra(“clave”,”Nuevo valor”)

}

actividad de inicio (intención)

Segunda pantalla:

val secondIntent = intent.getStringExtra(“clave”)

Aquí solo mencionamos la acción en la intención y el sistema operativo decide qué aplicaciones son adecuadas para manejar la tarea, acción en dos aplicaciones diferentes.
Las intenciones explícitas se utilizan para la comunicación dentro de la aplicación. Como cambiar actividades dentro de la aplicación. Se utilizan para la comunicación entre dos aplicaciones diferentes.
En la intención explícita, el objetivo de la acción se entrega aunque no se consulte el filtro. Cuando realiza una llamada implícita con la intención. El sistema operativo observa la acción y luego coincide con todos los filtros de intención de filtros de todas las actividades registradas de todas las aplicaciones que usan PackageManager y luego completa el resultado como una lista, este proceso se denomina resolución de intención. 

Publicación traducida automáticamente

Artículo escrito por niranjannaik 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 *