Android
Intenciones implícitas
Buscar..
Sintaxis
- Intención()
- Intención (Intención o)
- Intención (acción de cadena)
- Intención (String action, Uri uri)
- Intención (Context packageContext, Class <?> Cls)
- Intención (Acción de cadena, Uri uri, Context packageContext, Class <?> Cls)
Parámetros
Parámetros | Detalles |
---|---|
o | Intención |
acción | String: la acción Intención, como ACTION_VIEW. |
uri | Uri: El URI de datos de Intención. |
packageContext | Context: un contexto del paquete de aplicación que implementa esta clase. |
cls | Class: la clase de componente que se utilizará para la intención. |
Observaciones
Más sobre Intención
Más sobre los tipos de intención
Intenciones implícitas y explícitas
Se utiliza una intención explícita para iniciar una actividad o servicio dentro del mismo paquete de aplicación. En este caso, el nombre de la clase deseada se menciona explícitamente:
Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);
Sin embargo, se envía una intención implícita a través del sistema para cualquier aplicación instalada en el dispositivo del usuario que pueda manejar esa intención. Esto se utiliza para compartir información entre diferentes aplicaciones.
Intent intent = new Intent("com.stackoverflow.example.VIEW");
//We need to check to see if there is an application installed that can handle this intent
if (getPackageManager().resolveActivity(intent, 0) != null){
startActivity(intent);
}else{
//Handle error
}
Más detalles sobre las diferencias se pueden encontrar en los documentos de Android Developer aquí: Intención de resolución
Intenciones implícitas
Los intentos implícitos no nombran un componente específico, sino que declaran una acción general para realizar, lo que permite que un componente de otra aplicación lo maneje.
Por ejemplo, si desea mostrarle al usuario una ubicación en un mapa, puede usar un intento implícito para solicitar que otra aplicación capaz muestre una ubicación específica en un mapa.
Ejemplo:
// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}