¿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!

  • Cómo comparar representaciones de cadena de dobles si termina en .00
  • ¿Es posible ejecutar applets Java en el navegador WebKit de Android?
  • RxJava + Retrofit + sondeo
  • ¿Dónde puedo ver los resultados de las pruebas de JUnit en Android Studio?
  • ¿Debo evitar estrictamente el uso de enums en Android?
  • Cómo llamar a Javascript __doPostBack de JSOUP
  • Android: validar el archivo xml en tiempo de compilación?
  • Android: establecer el color mediante programación de las constantes de color XML
  • cómo comprobar la cadena es un código de color hexadecimal válido en android
  • Alternativa de Android a java.awt (BufferedImage y Raster)
  • Cómo rotar un objeto Rect en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.