¿Qué es una intención en Android?


  • ¿Qué es una intención en Android?
  • ¿Puede alguien elaborar con un ejemplo?
  • ¿Cuáles son los tipos de Intentos y por qué los estamos usando?
  • ¿Por qué las Intenciones son tan importantes en Android?
Author: Dan Dascalescu, 2011-07-05

19 answers

Una Intención 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 de 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 podrían estar escuchando y reaccionarán 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 amigos quién puede hacer X ("filtros de intención"), para hacer X. Las otras personas ignorarán el correo electrónico, pero John (o amigos que pueden hacer X) reaccionarán a él.

Para escuchar una intent de difusión (como el timbre del teléfono o se recibe un SMS), implementa un receptor de difusión , al que se le pasará la intent. Para declarar que puedes manejar la intent de otra aplicación como "tomar foto", declaras un filtro de intent en el archivo de manifiesto de tu aplicación.

Si quieres disparar un intención de hacer algo, como hacer estallar el marcador, que disparar una intención diciendo que lo hará.

 454
Author: Chirag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-09 21:29:29

¿Qué es una intención ?

An Intención es básicamente un mensaje que se pasa entre componentes (tales como Actividades, Servicios, Receptores de Radiodifusió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 a la API y la invocación de componentes a través de intents son:

  • Las llamadas a la API son sincrónicas mientras que las invocaciones basadas en intent ser asíncrono.
  • Las llamadas API son vinculantes en tiempo de compilación, mientras que las llamadas basadas en intent son enlace en tiempo de ejecución.

Por supuesto, se puede hacer que las Intents funcionen exactamente como las llamadas a la API usando lo que se llaman intents 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 para hacer un trabajo. Y cualquier otro componente que existe y ha afirmado que puede hacer tal trabajo a través de intent-filtros, 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 todavía pueden trabajar juntos para dar el resultado deseado para el usuario final.

Esta conexión invisible entre componentes se logra a través de la combinación de intents, filtros de intents y la plataforma Android.

Esto conduce a enormes posibilidades como:

  • Mezclar y combinar o más bien conectar y usar componentes en tiempo de ejecución.
  • Sustitución de las aplicaciones Android incorporadas con desarrollo personalizado aplicación.
  • Reutilización a nivel de componente dentro y entre aplicaciones.
  • Orientación de 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 un resumen descripción de la operación que deba realizarse. Se puede usar con startActivity para lanzar 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.

Una Intent proporciona una facilidad para realizar enlaces en tiempo de ejecución tardío entre el código en diferentes aplicaciones. Su uso más significativo es en el lanzamiento de actividades, donde se puede pensar como el pegamento entre las 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 intent son:

  • medidas 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 los contactos base de datos, expresada como Uri.

Más información

 145
Author: mr.boyfox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-13 01:28:31

Los intentos son una forma de decirle a Android lo que quieres hacer. En otras palabras, usted describe su intención. Las Intents se pueden usar para señalar al sistema Android que se ha producido un determinado evento. Otros componentes de Android pueden registrarse en este evento a través de un filtro de intents.

Los siguientes son 2 tipos de intentos

1.Intenciones explícitas

Se usa para llamar a un componente específico. Cuando sabes qué componente quieres lanzar y no quieres dar al usuario el control libre sobre qué componente utilizar. Por ejemplo, tienes una aplicación que tiene 2 actividades. Actividad A y actividad B. Desea iniciar la actividad B desde la actividad A. En este caso, define una actividad de segmentación por intención explícita y luego la usa para llamarla directamente.

2.Intenciones implícitas

Se usa cuando tienes una idea de lo que quieres hacer, pero no sabes qué componente se debe lanzar. O si desea dar al usuario una opción para elegir entre una lista de componentes a utilizar. Si estas Intents 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 tu aplicación es que le das al usuario la posibilidad de enviar las fotos que ha tomado. No sabes qué tipo de aplicación tiene el usuario que puede enviar fotos, y también desea 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 una intent implícita que tenga su acción establecida en ACTION_SEND y sus datos adicionales establecidos en el URI de la foto.

Una intent explícita siempre se entrega a su objetivo, sin importar lo que contenga; el filtro no se consulta. Pero una intent implícita 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ía un Intents al sistema Android, determinará las aplicaciones adecuadas para este Intents. Si se han registrado varios componentes para este tipo de Intents, 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 Intent a los que puede responder un Receptor de activity, service o orBroadcast. Un Filtro de Intención declara las capacidades de un componente. Especifica qué actividad o servicio puede hacer y qué tipos de transmisiones puede manejar un Receptor. Permite que el componente correspondiente reciba Intents del tipo declarado. IntentFilters se definen típicamente vía el AndroidManifest.archivo xml. Para BroadcastReceiver también es posible definirlos en 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 Intents, solo puede ser llamado por Intents explícitos.

Los siguientes son 2 formas de definir un filtro

1.Archivo de manifiesto

Si define el filtro de intents en el manifiesto, su aplicación no tiene que estar ejecutándose para reaccionar a las intents definidas en su filtro. Android registra el filtro cuando se instala la aplicación.

2.Receptor de difusión

Si desea que su receptor de difusión para recibe la intent solo cuando tu aplicación se esté ejecutando. Luego debe definir su filtro de intents durante el tiempo de ejecución (programáticamente). Tenga en cuenta que esto funciona solo para receptores de radiodifusión.

 42
Author: Varun Bhatia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-29 13:13:16

Puedes pensar en una intención como una "intención de hacer algo". Es un tipo de mensaje que le permite unir objetos separados (como actividades) en tiempo de ejecución.

Si una actividad quiere iniciar una segunda actividad, lo hace por enviar una intent a Android. Android iniciará la segunda actividad y pásale la intención.

introduzca la descripción de la imagen aquí

Head First Android Development

 15
Author: kokabi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-25 07:42:49

Después de escribir una sola actividad, surge la necesidad de pasar a otra actividad para realizar otra tarea, ya sea con o sin información de la primera actividad.

La plataforma Android permite la transición mediante la interfaz Intent.

Las palabras se toman de aquí: Usando Intent Demo y le sugiero que revise este ejemplo porque también han proporcionado un archivo de código. así que puedes usarlo y entender fácilmente lo mismo.

 12
Author: Paresh Mayani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-27 07:21:21

Una aplicación Android puede contener cero o más actividades. Cuando la 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 intent.

 11
Author: Farooq Nadeem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-02 10:25:54

Según su documentación:

Una Intent es un objeto que proporciona enlace en tiempo de ejecución entre componentes separados (como dos actividades). La Intent representa la "intención de hacer algo" de una aplicación."Puedes usar intents 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 el documento describe, con el fin de iniciar una actividad (también es necesario entender lo que la actividad es) utilizar la intent como 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);
}
 9
Author: kta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-14 04:09:57

Una intent 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.

Para más detalles ver 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.

 8
Author: Dinesh Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-05 04:51:55

Android Intent

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.

La Intent de Android se puede definir como un objeto de mensaje simple que se usa para comunicarse de 1 actividad a otra.

Intents define la intención de una Aplicación . También se utilizan para transferir datos entre actividades.

Se puede usar una Intent de Android para realizar las siguientes 3 tareas :

  1. Abrir otra Actividad o Servicio de la Actividad actual
  2. Pasar datos entre Actividades y Servicios
  3. Delegar la responsabilidad a otra aplicación. Por ejemplo, usted puede utilice Intents para abrir la aplicación del navegador para mostrar una URL.

La intención puede clasificarse ampliamente en 2 categorías. No hay palabras clave para esta categoría y solo una amplia clasificación de cómo son las intenciones de Android utilizar.

Intención explícita de Android

La Intent explícita de Android es la Intent en la que se define explícitamente el componente que el sistema Android debe llamar.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

Intención implícita de Android

Las Intents implícitas de Android son las intents en las que, en lugar de definir los componentes exactos, defines la acción que quieres realizar. La decisión de manejar esta acción se deja al sistema operativo. El sistema operativo decide qué componente es el mejor para ejecutar intenciones implícitas. 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

 8
Author: IntelliJ Amiya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-15 05:35:38

¿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 correo electrónico, etc.

Hay dos tipos de intentos en Android:

Intención implícita
Intención Explícita

La intent implícita se usa para invocar los componentes del sistema

Ejemplo

Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));

startActivity(i);

Explicit intent se utiliza para invocar el clase de actividad.

Ejemplo

Intent intent = newIntent (esto, SecondActivity.clase);

startActivity(intent);

Puedes leer más

Http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html

 5
Author: Mina Fawzy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-25 08:10:39

Para entender los intentos, básicamente, le sugeriría que vaya a través del sitio: http://developer.android.com/guide/topics/intents/intents-filters.html

Además, he discutido sobre 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 /

Solo echa un vistazo si crees que sería útil..

Gracias

 2
Author: Deepthi G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-22 12:53:54

Una Intent es una clase,que es enlazar la información para hacer algunas acciones.

Ejemplo: pasar datos de una actividad a otra actvity cuando el usuario realiza tales acciones en

Actividad Actual.

 2
Author: madarkife,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-24 15:13:25

La intención es la intención de realizar una operación.

En detalle puede consultar

Http://developer.android.com/reference/android/content/Intent.html

También, en mi blog

Http://emergingandroidtech.blogspot.in/2014/11/what-is-intent-in-android.html

Eche un vistazo si es útil para usted.

Gracias.

 2
Author: Shriyanshu Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-10 08:56:42
  1. ¿Qué son los intentos? Las Intents son mensajes asíncronos que permiten a los componentes de la aplicación solicitar funcionalidad de otros componentes de Android. Las Intents permiten interactuar con componentes propios y de otras aplicaciones. Por ejemplo, una actividad puede iniciar una actividad externa para tomar una foto.

Los Intents son objetos del android.contenido.Tipo de intención. Tu código puede enviarlos al sistema Android definiendo los componentes a los que estás dirigido. Por ejemplo, a través de Método startActivity () puede definir que la intent se debe usar para iniciar una actividad.

Una intent puede contener datos a través de un Bundle. Estos datos pueden ser utilizados por el componente receptor.

Iniciar la actividad conectarse a la

Clase especificada

Diferentes tipos de intentos enter code here Android admite intenciones explícitas e implícitas.

Una aplicación puede definir el componente de destino directamente en la intent (explicit intent) o pedir al sistema Android que evalúe componentes registrados basados en los datos de intents (intents implícitas).

 1
Author: MAFAIZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-16 16:14:32

Los Intents son mensajes asíncronos que permiten a los componentes de la aplicación solicitar funcionalidad de otros componentes de Android. Las Intents 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 Intents son objetos del android.contenido.Tipo de intención. Tu código puede enviarlos al sistema Android definiendo los componentes que eres dirigir. Por ejemplo, a través del método startActivity() puede definir que la intent se debe usar para iniciar una actividad.

Una intent puede contener datos a través de un Bundle. Estos datos pueden ser utilizados por el componente receptor. Para iniciar una actividad, utilice el método startActivity (intent). Este método se define en el objeto Context cuya Actividad se extiende.

 1
Author: Rosemol Francis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-23 04:24:38

En una visión amplia, podemos definir Intent como

Cuando una actividad quiere iniciar otra actividad crea un Objeto llamada Intent que especifica qué actividad quiere iniciar.

 1
Author: Kartik Goyal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-02 19:56:23

Una aplicación 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 intent. Puedes pasar algunos datos a la actividad que deseas iniciar a través de intent, usando putExtra ().

 0
Author: Shaon Hasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-06 06:26:42

Del documento Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013 link

La intención se entiende en algunas líneas pequeñas pero efectivas

  1. Android admite una forma simple de IPC (comunicación entre procesos) a través de intents
  2. Intent messaging es un marco para la comunicación asíncrona entre los componentes de Android (actividad, servicio, proveedores de contenido, receptor de difusión )
  3. Esos componentes pueden ejecutarse en la misma o en diferentes aplicaciones (es decir, procesos)
  4. Habilita ambos punto a punto, así como publicar subscribe messaging domains
  5. La intent en sí misma representa un mensaje que contiene la descripción de la operación que se va a realizar, así como los datos que se van a pasar al destinatario o destinatarios.

De este hilo una respuesta simple del arquitecto androide Dianne Hackborn lo establece como un data container que en realidad es.

Desde el punto de vista de la arquitectura de Android :

Intent es un contenedor de datos que se utiliza para inter procesos comunicar. Está construido sobre Binder desde el punto de vista de la arquitectura de Android.

 0
Author: Zahan Safallwa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-08 11:35:24

Los intentos se utilizan para iniciar otra actividad desde una activity.It se utiliza básicamente para varios propósitos, como enviar datos a otra actividad desde una actividad, y para fines de activación.

Son básicamente de dos tipos

  1. Intenciones implícitas.

  2. Intenciones explícitas.

Como principiante sé esto mucho, creo que esto dará una idea básica sobre Android intents

 0
Author: Soorya Prakash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-30 21:46:14