guerra - ¿Qué es una intención en Android?
cómo empezó la guerra de siria (19)
Una aplicación de Android puede contener cero o más actividades. Cuando su aplicación tiene más de una actividad, a menudo necesita navegar de una a otra. En Android, navegas entre actividades a través de lo que se conoce como intención. Puede pasar algunos datos a la actividad que desea comenzar con la intención, usando putExtra ().
- ¿Qué es una Intent en Android?
- ¿Alguien puede elaborar con un ejemplo?
- ¿Cuáles son los tipos de intenciones y por qué los estamos utilizando?
- ¿Por qué son tan importantes las intenciones en Android?
¿Qué es una intención?
Una Intent es básicamente un mensaje que se transmite entre componentes (como Actividades , Servicios, Receptores de difusión y Proveedores de contenido ). Por lo tanto, es casi equivalente a los parámetros pasados a las llamadas a la API. Las diferencias fundamentales entre las llamadas a la API y la invocación de componentes a través de intentos son:
- Las llamadas a la API son sincrónicas, mientras que las invocaciones basadas en la intención son asíncronas.
- Las llamadas API son enlaces en tiempo de compilación, mientras que las llamadas basadas en intenciones son enlaces en tiempo de ejecución.
Por supuesto, se puede hacer que los intentos funcionen exactamente como las llamadas a la API usando lo que se llama intentos explícitos, que se explicarán más adelante. Pero la mayoría de las veces, los intentos implícitos son el camino a seguir y eso es lo que se explica aquí.
Un componente que quiere invocar a otro solo tiene que expresar su intención de hacer un trabajo. Y cualquier otro componente que exista y haya afirmado que puede realizar dicho trabajo a través intent-filters , es invocado por la plataforma Android para realizar el trabajo. Esto significa que ninguno de los componentes es consciente de la existencia del otro, pero aún pueden trabajar juntos para proporcionar el resultado deseado para el usuario final.
Esta conexión invisible entre componentes se logra a través de la combinación de intenciones, filtros de intención y la plataforma Android.
Esto lleva a enormes posibilidades como:
- Mezclar y combinar o más bien conectar y reproducir componentes en tiempo de ejecución.
- Reemplazo de las aplicaciones de Android incorporadas con aplicaciones desarrolladas a medida.
- Reutilización a nivel de componente dentro y entre aplicaciones.
- Servicio de orientación al nivel más granular, si puedo decir.
Aquí hay detalles técnicos adicionales acerca de los Intent .
Un intento es una descripción abstracta de una operación a realizar. Puede usarse con startActivity para iniciar una Actividad, broadcastIntent para enviarlo a cualquier componente BroadcastReceiver interesado, y startService (Intent) o bindService (Intent, ServiceConnection, int) para comunicarse con un Servicio en segundo plano.
Un intento proporciona una facilidad para realizar el enlace de tiempo de ejecución tardío entre el código en diferentes aplicaciones. Su uso más importante es en el lanzamiento de actividades, donde se puede considerar 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. Las principales piezas de información en una intención son:
- acción La acción general a realizar, como ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc.
- datos Los datos para operar, como un registro de persona en la base de datos de contactos, expresados como Uri.
Aprende más
Intención de Android
Android Intent te permite navegar de una actividad de Android a otra. Con ejemplos, este tutorial también habla sobre varios tipos de intentos de Android.
Android Intent puede definirse como un simple objeto de mensaje que se utiliza para comunicarse de una actividad a otra.
Las intenciones definen la intención de una aplicación. También se utilizan para transferir datos entre actividades.
Se puede usar una intención de Android para realizar las siguientes 3 tareas:
- Abre otra actividad o servicio de la actividad actual
- Pasar datos entre Actividades y Servicios.
- Delegar la responsabilidad a otra aplicación. Por ejemplo, puede usar Intents para abrir la aplicación del navegador para mostrar una URL.
La intención puede ser ampliamente clasificada en 2 categorías. No hay palabras clave para esta categoría y solo una clasificación amplia de cómo se usan los intentos de Android.
Intención explícita de Android
La intención explícita de Android es la intención en la que usted define explícitamente el componente que necesita el sistema Android.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Intención implícita de Android
Los intentos de Android implícitos son la intención donde, en lugar de definir los componentes exactos, usted define la acción que desea realizar. La decisión de manejar esta acción se deja al sistema operativo. El sistema operativo decide qué componente es mejor ejecutar para intentos implícitos. Veamos un ejemplo:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Para más información puede visitar a continuación
http://developer.android.com/reference/android/content/Intent.html
- ¿Qué son las intenciones? Los intentos son mensajes asíncronos que permiten a los componentes de la aplicación solicitar funcionalidad de otros componentes de Android. Las intenciones le permiten interactuar con componentes de la propia aplicación y otras aplicaciones. Por ejemplo, una actividad puede iniciar una actividad externa para tomar una foto.
Los intentos son objetos del tipo android.content.Intent. Su código puede enviarlos al sistema Android que define los componentes a los que se dirige. Por ejemplo, a través del método startActivity (), puede definir que la intención debe usarse para iniciar una actividad.
Un intento puede contener datos a través de un paquete. Estos datos pueden ser utilizados por el componente receptor.
Iniciar la actividad conectar a la
clase especificada
Diferentes tipos de intentos enter code here
Android admite intentos explícitos e implícitos.
Una aplicación puede definir el componente de destino directamente en la intención (intención explícita) o pedir al sistema Android que evalúe los componentes registrados en función de los datos de la intención (intenciones implícitas).
Del documento Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
La intención se entiende en algunas líneas pequeñas pero efectivas.
- Android admite una forma simple de IPC (comunicación entre procesos) a través de intentos
- La intención de la mensajería es un marco para la comunicación asíncrona entre los componentes de Android (actividad, servicio, proveedores de contenido, receptor de difusión)
- Esos componentes pueden ejecutarse en la misma aplicación o en diferentes aplicaciones (es decir, procesos)
- Habilita los dominios de mensajería de suscripción y de punto a punto
- La intención en sí misma representa un mensaje que contiene la descripción de la operación que se realizará, así como los datos que se pasarán a los destinatarios.
Desde this hilo, una respuesta simple de la arquitecta de android Dianne Hackborn lo declara como un data container
que realmente es.
Desde el punto de vista de la arquitectura android :
La intención es un contenedor de datos que se utiliza para la comunicación entre procesos. Está construido sobre el Binder
desde el punto de vista de la arquitectura de Android.
Después de escribir una sola actividad, surge la necesidad de pasar a otra actividad para realizar otra tarea con o sin información de la primera actividad.
La plataforma Android permite la transición mediante Intent Interface.
Las palabras se toman de aquí: con Intent Demo y te sugiero que sigas este ejemplo porque también han proporcionado un archivo de código. Para que puedas usarlo y entender fácilmente lo mismo.
En una visión amplia, podemos definir Intención como
Cuando una Actividad quiere comenzar otra actividad, crea un Objeto llamado Intención que especifica qué Actividad quiere comenzar.
Los intentos se utilizan para iniciar otra actividad a partir de una actividad. Básicamente, se utiliza para varios propósitos, como enviar datos a otra actividad desde una actividad y para propósitos de activación.
Son básicamente de dos tipos.
Intenciones implícitas.
Intenciones explícitas.
Como principiante, sé esto, creo que esto dará una idea básica sobre los intentos de Android
Los intentos son mensajes asíncronos que permiten a los componentes de la aplicación solicitar funcionalidad de otros componentes de Android. Las intenciones le permiten interactuar con componentes de las mismas aplicaciones, así como con componentes aportados por otras aplicaciones. Por ejemplo, una actividad puede iniciar una actividad externa para tomar una foto.
Los intentos son objetos del tipo android.content.Intent. Su código puede enviarlos al sistema Android que define los componentes a los que se dirige. Por ejemplo, a través del método startActivity () puede definir que la intención debe usarse para iniciar una actividad.
Un intento puede contener datos a través de un paquete. Estos datos pueden ser utilizados por el componente receptor. Para iniciar una actividad, use el método startActivity (intención). Este método se define en el objeto de contexto que la Actividad extiende.
Los intentos son una forma de decirle a Android lo que quieres hacer . En otras palabras, usted describe su intención. Los intentos se pueden usar para señalar al sistema Android que se ha producido un evento determinado. Otros componentes en Android pueden registrarse en este evento a través de un filtro de intención.
Los siguientes son 2 tipos de intentos
1. intenciones explícitas
Se utiliza para llamar a un componente específico. Cuando sepa qué componente desea iniciar y no quiere darle al usuario el control libre sobre qué componente utilizar. Por ejemplo, tienes una aplicación que tiene 2 actividades. La actividad A y la actividad B. Desea iniciar la actividad B desde la actividad A. En este caso, define una actividad explícita de orientación por intención B y luego la utiliza para llamarla directamente.
2. intenciones implícitas
se utiliza cuando se tiene una idea de lo que desea hacer, pero no sabe qué componente debe iniciarse. O si desea darle al usuario la opción de elegir entre una lista de componentes para usar. Si estos intentos se envían al sistema Android, busca todos los componentes registrados para la acción específica y el tipo de datos. Si solo se encuentra un componente, Android inicia el componente directamente. Por ejemplo, tienes una aplicación que usa la cámara para tomar fotos. Una de las características de su aplicación es que le da al usuario la posibilidad de enviar las fotos que ha tomado. No sabe qué tipo de aplicación tiene el usuario que puede enviar fotos, y también quiere darle al usuario la opción de elegir qué aplicación externa usar si tiene más de una. En este caso no utilizarías una intención explícita. En su lugar, debe usar un intento implícito que tenga su acción establecida en ACTION_SEND y su conjunto de datos adicionales en el URI de la foto.
Una intención explícita siempre se entrega a su objetivo, sin importar lo que contenga; El filtro no es consultado. Pero un intento implícito se entrega a un componente solo si puede pasar a través de uno de los filtros del componente
Filtros de Intención
Si se envían intenciones al sistema Android, se determinarán las aplicaciones adecuadas para estas intenciones. Si se han registrado varios componentes para este tipo de Intenciones, Android ofrece al usuario la opción de abrir uno de ellos.
Esta determinación se basa en IntentFilters. Un IntentFilters especifica los tipos de Intención a los que puede responder una actividad, un servicio o un Receptor de Transmisión. Un filtro de intención declara las capacidades de un componente. Especifica qué puede hacer una actividad o servicio y qué tipos de transmisiones puede manejar un receptor. Permite al componente correspondiente recibir Intentos del tipo declarado. Los IntentFilters se definen normalmente a través del archivo AndroidManifest.xml. Para BroadcastReceiver también es posible definirlos en la codificación. Un IntentFilters se define por su categoría, acción y filtros de datos. También puede contener metadatos adicionales.
Si un componente no define un filtro de Intención, solo se puede llamar mediante Intenciones explícitas.
A continuación se presentan 2 formas de definir un filtro.
Archivo 1.Manifest
Si define el filtro de intento en el manifiesto, su aplicación no tiene que estar ejecutándose para reaccionar a los intentos definidos en su filtro. Android registra el filtro cuando su aplicación se instala.
2. Receptor Extendido
Si desea que su receptor de difusión reciba la intención solo cuando su aplicación se esté ejecutando. Luego debe definir su filtro de intento durante el tiempo de ejecución (programáticamente). Tenga en cuenta que esto funciona solo para receptores de transmisión.
Para comprender las intenciones, básicamente, le sugiero que visite el sitio: http://developer.android.com/guide/topics/intents/intents-filters.html
Además, he discutido sobre los intentos con ejemplos en mi blog personal: http://androiddesk.wordpress.com/2011/12/24/explicit-intent/
http://androiddesk.wordpress.com/2012/01/13/implicit-intent/
Echa un vistazo si crees que sería útil ...
Gracias
Puedes pensar en un intento como un "intento de hacer algo". Es un tipo de mensaje que le permite enlazar objetos separados (como actividades) en tiempo de ejecución.
Si una actividad quiere iniciar una segunda actividad, lo hace enviando un intento a Android. Android comenzará la segunda actividad y le pasará la intención.
Según su documentación:
Un intento es un objeto que proporciona un enlace de tiempo de ejecución entre componentes separados (como dos actividades). La intención representa la "intención de hacer algo" de una aplicación. Puedes usar los intentos para una amplia variedad de tareas, pero la mayoría de las veces se usan para iniciar otra actividad.
Aquí está el enlace con el ejemplo: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Como se describe en el documento, para iniciar una actividad (también debe comprender qué es la actividad) use la intención como se muestra a continuación
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Un intento es una descripción abstracta de una operación a realizar. Se puede usar con startActivity para iniciar una Actividad, broadcastIntent para enviarlo a cualquier componente BroadcastReceiver interesado, y startService (Intent) o bindService (Intent, ServiceConnection, int) para comunicarse con un Servicio en segundo plano.
Para más detalles vea estos enlaces:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
Hay muchos más artículos disponibles.
Una Intent es una "intención" de realizar una acción; en otras palabras,
un objeto de mensajería que puede usar para solicitar una acción desde otro componente de la aplicación
Una Intención es básicamente un mensaje para decir que hiciste o quieres que algo suceda. Dependiendo de la intención, las aplicaciones o el sistema operativo pueden escucharlo y reaccionar en consecuencia. Piense en ello como un correo electrónico explosivo a un grupo de amigos, en el que le dice a su amigo John que haga algo, o a los 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 pueden hacer X) reaccionarán a ello.
Para escuchar un intento de transmisión (como el timbre del teléfono o un SMS recibido), implementa un receptor de transmisión , al que se le pasará la intención. Para declarar que puede manejar el intento de otra aplicación como "tomar una foto", declara un filtro de intento en el archivo de manifiesto de su aplicación .
Si desea disparar un intento de hacer algo, como abrir el marcador, puede disparar un intento diciendo que lo hará.
Una Intención es una clase, que es vincular la información para realizar algunas acciones.
Ejemplo: pasar datos de una actividad a otra actividad cuando el usuario realiza tales acciones en
actividad presente.
Una aplicación de Android puede contener cero o más actividades. Cuando su aplicación tiene más de una actividad, es posible que deba navegar de una actividad a otra. En Android, navegas entre actividades a través de lo que se conoce como intención.
¿Qué es la intención?
Es un tipo de mensaje o información que se pasa a los componentes. Se utiliza para iniciar una actividad, mostrar una página web, enviar sms, enviar correos electrónicos, etc.
Hay dos tipos de intentos en Android:
Intención implícita
Intención explícita
La intención implícita se utiliza para invocar los componentes del sistema.
Ejemplo
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
La intención explícita se utiliza para invocar la clase de actividad.
Ejemplo
Intención intención = newIntent (this, SecondActivity.class);
startActivity(intent);
puedes leer mas
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
La intención es la intención de realizar una operación.
En detalle puedes referirte.
http://developer.android.com/reference/android/content/Intent.html
Además, en mi blog.
http://emergingandroidtech.blogspot.in/2014/11/what-is-intent-in-android.html
Echa un vistazo si te es útil.
Gracias.