Android
Intenti impliciti
Ricerca…
Sintassi
- Intento()
- Intento (intenzione o)
- Intento (String action)
- Intento (String action, Uri uri)
- Intento (Context packageContext, Class <?> Cls)
- Intento (String action, Uri uri, Context packageContext, Class <?> Cls)
Parametri
parametri | Dettagli |
---|---|
o | Intento |
azione | String: l'azione Intent, ad esempio ACTION_VIEW. |
uri | Uri: l'URI di dati Intent. |
packageContext | Context: un contesto del pacchetto dell'applicazione che implementa questa classe. |
cls | Class: la classe componente che deve essere utilizzata per l'intento. |
Osservazioni
Maggiori informazioni su Intent
Maggiori informazioni sui tipi di intenti
Intenti impliciti ed espliciti
Un intento esplicito viene utilizzato per avviare un'attività o un servizio all'interno dello stesso pacchetto dell'applicazione. In questo caso il nome della classe desiderata è esplicitamente menzionato:
Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);
Tuttavia, un intento implicito viene inviato attraverso il sistema per tutte le applicazioni installate sul dispositivo dell'utente in grado di gestirlo. Questo è usato per condividere informazioni tra diverse applicazioni.
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
}
Maggiori dettagli sulle differenze sono disponibili nei documenti per sviluppatori Android qui: Risoluzione intenzionale
Intenti impliciti
Gli intent impliciti non nominano un componente specifico, ma dichiarano invece un'azione generale da eseguire, che consente a un componente di un'altra app di gestirlo.
Ad esempio, se si desidera mostrare all'utente una posizione su una mappa, è possibile utilizzare un intento implicito per richiedere che un'altra app in grado di mostrare una posizione specificata su una mappa.
Esempio:
// 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);
}