¿Qué es una intención en Android?
- ¿Qué es una intención en Android?
- ¿Alguien puede dar más detalles con un ejemplo?
- ¿Cuáles son los tipos de Intents y por qué los utilizamos?
- ¿Por qué son tan importantes los Intents en Android?
Una Intención es una "intención" de realizar una acción; en otras palabras,
un objeto de mensajería que puede utilizar para solicitar una acción de otro componente de la aplicación
Una intención es básicamente un mensaje para decir que hiciste o querías que sucediera algo. Dependiendo de la intención, las aplicaciones o el sistema operativo podrían estar escuchando y reaccionarán en consecuencia. Piense en ello como un correo electrónico explosivo para un grupo de amigos, en el que le dice a su amigo John que haga algo, o a amigos que pueden hacer X ( "filtros de intención" ), que hagan X. Las otras personas ignorarán el correo electrónico. pero John (o amigos que puedan hacer X) reaccionarán.
Para escuchar una intención de transmisión (como el timbre del teléfono o la recepción de un SMS), implementa un receptor de transmisión , al que se le pasará la intención. Para declarar que puedes manejar la intención de la aplicación de otra persona, como "tomar una foto", declaras un filtro de intención en el archivo de manifiesto de tu aplicación .
Si desea activar una intención de hacer algo, como abrir el marcador, dispara una intención que dice que lo hará.
¿Qué es una intención?
Una intención es básicamente un mensaje que se pasa entre componentes (como actividades , servicios, receptores de transmisión y proveedores de contenido ). Por lo tanto, es casi equivalente a los parámetros pasados a las llamadas API. Las diferencias fundamentales entre las llamadas API y la invocación de componentes mediante intents son:
- Las llamadas a la API son sincrónicas, mientras que las invocaciones basadas en intenciones son asíncronas.
- Las llamadas API son vinculantes en tiempo de compilación, mientras que las llamadas basadas en intención son vinculantes en tiempo de ejecución.
Por supuesto, se puede hacer que los Intents funcionen exactamente como las llamadas API utilizando lo que se denominan intents explícitos, que se explicarán más adelante. Pero la mayoría de las veces, las intenciones implícitas son el camino a seguir y eso es lo que se explica aquí.
Un componente que quiera invocar a otro sólo tiene que expresar su intención de realizar un trabajo. Y cualquier otro componente que exista y haya afirmado que puede hacer ese trabajo a través de filtros de intención , es invocado por la plataforma Android para realizar el trabajo. Esto significa que ninguno de los componentes conoce la existencia del otro, pero aún así pueden trabajar juntos para brindar el resultado deseado al usuario final.
Esta conexión invisible entre componentes se logra mediante la combinación de intents, filtros de intents y la plataforma Android.
Esto conduce a enormes posibilidades como:
- Mezcle y combine o más bien conecte y reproduzca componentes en tiempo de ejecución.
- Reemplazar las aplicaciones de Android incorporadas con aplicaciones desarrolladas a medida.
- Reutilización a nivel de componentes dentro y entre aplicaciones.
- Orientación al servicio al nivel más granular, si se me permite decirlo.
Aquí hay detalles técnicos adicionales sobre Intents de la documentación de Android .
Una intención es una descripción abstracta de una operación a realizar. Se puede usar con startActivity para iniciar una actividad, broadcastIntent para enviarla a cualquier componente BroadcastReceiver interesado y startService(Intent) o bindService(Intent, ServiceConnection, int) para comunicarse con un servicio en segundo plano.
Un Intent proporciona una función para realizar un enlace en tiempo de ejecución tardío entre el código de diferentes aplicaciones. Su uso más importante es en el lanzamiento de actividades, donde puede considerarse como el pegamento entre actividades. Es básicamente una estructura de datos pasiva que contiene una descripción abstracta de una acción a realizar. Los principales datos de una intención son:
- acción La acción general que se va a realizar, como ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc.
- data Los datos sobre los que operar, como un registro de persona en la base de datos de contactos, expresados como Uri.
Aprende más
- El tutorial de Lars Vogel
- Artículo de ProgrammerGuru
- Intenciones comunes