¿Para qué sirven los diferentes constructores de Intent?

Intent(String action, Uri uri) Create an intent with a given action and for a given data url. Intent(Context packageContext, Class<?> cls) Create an intent for a specific component. Intent(String action, Uri uri, Context packageContext, Class<?> cls) Create an intent for a specific component with a specified action and data. 

Si bien puede ser obvio para algunos, ¿podrían ustedes ayudar a aquellos de nosotros que tienen dificultades para "conseguirlo"?

Por ejemplo, ¿en qué situación me gustaría 1 sobre la otra?

3 Solutions collect form web for “¿Para qué sirven los diferentes constructores de Intent?”

Hay dos tipos de intenciones:

  • Explicit intents especifican el componente para iniciar por nombre (el nombre de clase totalmente calificado). Por lo general, utilizará una intención explícita para iniciar un componente en su propia aplicación, ya que conoce el nombre de clase de la actividad o servicio que desea iniciar. Por ejemplo, inicie una nueva actividad en respuesta a una acción del usuario o inicie un servicio para descargar un archivo en segundo plano.
  • Implicit intents no nombran un componente específico, sino que declaran una acción general que realizar, lo que permite que un componente de otra aplicación lo maneje. Por ejemplo, si desea mostrar al usuario una ubicación en un mapa, puede utilizar una intención implícita para solicitar que otra aplicación compatible muestre una ubicación especificada en un mapa.

Cuando crea una intención explícita para iniciar una actividad o servicio, el sistema inicia inmediatamente el componente de aplicación especificado en el objeto Intent.

Cuando crea una intención implícita, el sistema Android encuentra el componente apropiado para comenzar comparando el contenido de la intención con los filtros de intención declarados en el archivo de manifiesto de otras aplicaciones en el dispositivo. Si la intención coincide con un filtro de intención, el sistema inicia ese componente y entrega el objeto Intent. Si los filtros de intención múltiple son compatibles, el sistema muestra un diálogo para que el usuario pueda elegir qué aplicación utilizar.

leer más en: Intents and Intent Filters


Volviendo a su pregunta, todas estas tres construcciones son maneras de crear una intención implícita / explícita. Dónde

  • Intent(String action, Uri uri) crea una intención implícita con acción dada y uri.

  • Intent(Context packageContext, Class<?> cls) crea una intención explícita.

  • Intent(String action, Uri uri, Context packageContext, Class<?> cls) crea una intención explícita con acción dada y uri.

-utilización de Intención con "Acción" Cadena siempre que desee realizar alguna acción [Intent.ACTION_DIAL, Intent.ACTION_VIEW] en caso de intención implícita. Especificación de un broadcastreceiver para transmitir un mensaje. -Intent (Contexto packageContext, cls Clase) cuando desea llamar a una actividad nueva de la actividad existente puede utilizarla.

Caso 1: solicita que se lleve a cabo una acción específica (llamada intención de impicto), IE

  Intent(INTENT.ACTION_DIAL,Uri.parse("555-555-5555")) 

Lo anterior marca un número de teléfono y, en algunos casos, si hay más de una aplicación que puede realizar la acción, abre un diálogo de selección que podría decir:

Completa la acción con Dialer My_dialer

y espera la selección del usuario.

Caso 2: Inicia otra actividad haciendo referencia a su nombre (intención explícita) IE

  Intent(Context.this,ActivityToBeLaunched.class) 

Caso 3: Es una mezcla de los dos primeros: narra la actividad lanzada a hacer algo específico IE

  Intent(INTENT.ACTION_DIAL,Uri.parse("555-555-5555",Context.this,ActivityToBeLaunched.class)) 

Espero que esto promueve su comprensión en Intents!

  • Redireccionamiento de STDIN y STDOUT del programa C en Android
  • Cómo convertir wsdl a java?
  • Android: ¿Notification.DEFAULT_VIBRATE requiere permiso de vibración?
  • ¿Cómo puedo codificar caracteres usando UTF-8 en un código QR usando el proyecto Zxing?
  • Comparar si dos fechas están dentro de la misma semana en android
  • Llamar siguiente () dos veces en Iterator lanza una excepción NoSuchElementException
  • Android cómo pasar un Activity.class como un argumento para una función
  • Obtención de error: "mala lectura de inttemp!" Al entrenar una nueva fuente en Tesseract 2
  • Problema de conexión USB AOA
  • Android URLConnection.setRequestProperty () en android estudio no parece hacer nada
  • Definir un mapa como constante en java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.