Intent: Intents Explícitos e Implícitos como mecanismo de envío de parámetros entre activities
En este artículo, explicaré sobre el Intent, y sus dos tipos el Explícito e Implícito.
Los intents son mensajes que provocan notificaciones y cambios de estatus que al ser recibidos por actividades o servicios pueden levantar procesos.
Es un mecanismo de paso de mensajes entre una actividad a otra que puede trabajar entre las propias actividades o entre diferentes aplicaciones. Los inten pueden ser utilizados como:
- Declarar la intención de una actividad o servicio que va ser iniciada al realizar una acción.
- Difundir un evento ocurrido.
- Iniciar un servicio en particular o una actividad.
Uno de los usos más frecuentes de los intents es iniciar nuevas actividades. Existen dos formas de intents que se utilizan.
Explícitas: Cuando se especifica la clase a cargar.
Implícitas: Por una solicitud sobre una acción que va ser realizada sobre unos datos específicos.
Los intents también son utilizados como emisores o cuminicadores (broadcast) de eventos a través del sistema. Cualquier aplicación puede registrar este tipo de emisores o Eventos y reaccionar por medio de los intents.
Así por ejemplo, los intents pueden anunciar eventos del sistema, como el cambio de estado en la conexión de Internet o el nivel de batería. Aplicaciones nativas de Android como el marcador del teléfono (Phone o Dialer) o el SMS Messenger resgistran componentes para escuchar eventos específicos como una llamada entrante o un mensaje SMS recibido.
Ejemplo de un intent explícito
Una intent explícita es una intent que se usa para iniciar un componente específico de la aplicación, como una actividad o un servicio particular en la aplicación. Para crear una intent explícita, define el nombre de componente del objeto Intent (todas las otras propiedades de la intent son opcionales). Por ejemplo, si creaste un servicio en tu app denominado DownloadService, diseñado para descargar un archivo de la Web, puedes iniciarlo con el siguiente código:
Kotlin
// Executed in an Activity, so 'this' is theContext
// The fileUrl is a string URL, such as "http://www.example.com/image.png"
val downloadIntent = Intent(this, DownloadService::class.java).apply {
data =Uri.parse
(fileUrl)
}
startService(downloadIntent)
Java
// Executed in an Activity, so 'this' is theContext
// The fileUrl is a string URL, such as "http://www.example.com/image.png"
Intent downloadIntent = new Intent(this, DownloadService.class);
downloadIntent.setData(Uri.parse
(fileUrl));
startService(downloadIntent);
Ejemplo de un intent implícito
Por ejemplo, si tienes contenido que quieres que el usuario comparta con otras personas, crea una intent con la acción ACTION_SEND y agrega extras que especifiquen el contenido para compartir. Cuando llamas a startActivity() con esa intent, el usuario puede elegir una aplicación mediante la cual compartir el contenido.
Kotlin
val sendIntent = Intent(Intent.ACTION_SEND)
// Always use string resources for UI text.
// This says something like "Share this photo with"
val title: String = resources.getString(R.string.chooser_title)
// Create intent to show the chooser dialog
val chooser: Intent = Intent.createChooser(sendIntent, title)
// Verify the original intent will resolve to at least one activity
if (sendIntent.resolveActivity(packageManager) != null) {
startActivity(chooser)
}
Java
Intent sendIntent = new Intent(Intent.ACTION_SEND);
// Always use string resources for UI text.
// This says something like "Share this photo with"
String title = getResources().getString(R.string.chooser_title);
// Create intent to show the chooser dialog
Intent chooser = Intent.createChooser(sendIntent, title);
// Verify the original intent will resolve to at least one activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
Ejemplos de la creación de la aplicación de un Intent:
Vamos a crear un nuevo proyecto con el nombre MiPrimerIntent, se deseas puedes colocarle el nombre que desees. Al momento de seleccionar la actividad elegir la opción Empty Activity y crear.
Para ello empezaremos agregando un EditText en la actividad inicial, y un TextView en la actividad siguiente.
Actividad 01
Ahora agreguemos el parámetro obtenido del edtTexto y enviemoslo por el Intent para mostrarlo en el txtTexto de la actividad siguiente. Para ello programaremos ambas actividades y debería quedar del siguiente modo.
Actividad 01
Ahora veamos el resultado.
Puedes descargar el proyecto de este enlace.
Espero que este artículo te haya sido de gran ayuda, no olvides dejar tu comentario.
Comentarios
Publicar un comentario