Android
Implizite Absichten
Suche…
Syntax
- Absicht()
- Absicht (Absicht o)
- Absicht (String-Aktion)
- Intent (String-Aktion, Uri Uri)
- Intent (Context packageContext, Klasse <?> Cls)
- Intent (String-Aktion, Uri-URI, Kontext-PackageContext, Klasse <?> Cls)
Parameter
Parameter | Einzelheiten |
---|---|
O | Absicht |
Aktion | String: Die Absichtsaktion, z. B. ACTION_VIEW. |
uri | Uri: Der Intent-Daten-URI. |
packageContext | Context: Ein Kontext des Anwendungspakets, das diese Klasse implementiert. |
cls | Class: Die Komponentenklasse, die für die Absicht verwendet werden soll. |
Bemerkungen
Mehr über Absicht
Mehr über Absichtstypen
Implizite und explizite Absichten
Eine explizite Absicht wird zum Starten einer Aktivität oder eines Services innerhalb desselben Anwendungspakets verwendet. In diesem Fall wird der Name der beabsichtigten Klasse explizit erwähnt:
Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);
Es wird jedoch eine implizite Absicht für jede auf dem Gerät des Benutzers installierte Anwendung über das System gesendet, die diese Absicht verarbeiten kann. Dies wird verwendet, um Informationen zwischen verschiedenen Anwendungen auszutauschen.
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
}
Weitere Einzelheiten zu den Unterschieden finden Sie in den Android-Entwicklerdokumenten hier: Intent Resolution
Implizite Absichten
Implizite Absichten benennen keine bestimmte Komponente, sondern deklarieren stattdessen eine allgemeine Aktion, die ausgeführt werden soll, sodass eine Komponente aus einer anderen App damit umgehen kann.
Wenn Sie dem Benutzer beispielsweise einen Ort auf einer Karte anzeigen möchten, können Sie eine implizite Absicht verwenden, um anzufordern, dass eine andere fähige App einen bestimmten Ort auf einer Karte anzeigt.
Beispiel:
// 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);
}