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

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);
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow