Intent: Unterschied zwischen den Versionen

Aus Android Wiki
(Fixed typo, Fixed grammar)
Markierung: Mobile Bearbeitung
(Ersten Absatz umgebaut)
Zeile 1: Zeile 1:
{{Unvollständig}}
{{Unvollständig}}
Als '''Intent''' (deutsch: ''Vorhaben'', ''Intention'') wird in Android eine Art ''Broadcast''-Nachricht (vgl. englisch ''Messaging object'') bezeichnet, welche verwendet werden kann, um Aktionen von anderen App-Komponenten zu beziehen<ref>{{Cite web|url = http://developer.android.com/guide/components/intents-filters.html|title = <nowiki>Intents and Intent Filters | Android Developers</nowiki>|accessdate = 2015-01-24}}</ref><ref>{{Cite web|url = https://de.wikibooks.org/wiki/Googles_Android/_Intents_oder_%22Ich_h%C3%A4tte_gern_den_Zucker%22#Actions_und_Intent-Filter|title = Googles Android/ Intents oder "Ich hätte gern den Zucker" – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher|accessdate = 2015-01-24}}</ref>, bzw. andere App-Komponenten über Ereignisse zu informieren. Über Intents wird bspw. innerhalb einer App von einer Activity zur nächsten übergegangen. Hierbei wird zwischen '''expliziten '''und '''impliziten''' Intents unterschieden.
Ein '''Intent''' (deutsch: ''Vorhaben'', ''Intention'') ist in der [[Android]]-Programmierung eine asynchrone Nachricht, welche verwendet werden kann, um Aktionen von anderen App-Komponenten zu beziehen<ref>{{Cite web|url = http://developer.android.com/guide/components/intents-filters.html|title = <nowiki>Intents and Intent Filters | Android Developers</nowiki>|accessdate = 2015-01-24}}</ref><ref>{{Cite web|url = https://de.wikibooks.org/wiki/Googles_Android/_Intents_oder_%22Ich_h%C3%A4tte_gern_den_Zucker%22#Actions_und_Intent-Filter|title = Googles Android/ Intents oder "Ich hätte gern den Zucker" – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher|accessdate = 2015-01-24}}</ref>, bzw. andere App-Komponenten über Ereignisse zu informieren. Über Intents wird bspw. innerhalb einer App von einer Activity zu einer anderen Activity "springen".  
 
Es können grundsätzlich zwei Arten von Intents unterschieden werden:
* '''Explizite Intents''' dienen dazu, innerhalb derselben [[App]] zu einer anderen [[Activity]] zu springen. Hierbei muss der Klassen-Name dieser Activity angegeben werden. Das "Sprungziel" wird also explizit (ausdrücklich<ref>{{Cite web | url = https://www.duden.de/rechtschreibung/explizit | title = Eintrag für das Wort "explizit" im Duden | accessdate = 2018-09-07 | publisher = duden.de}}</ref>) definiert.
* '''Implizite Intents''' dienen dazu, eine Activity in einer anderen App zu öffnen, die eine bestimmte Aktion auf bestimmten Daten ausführen kann (z.B. Aktion "Anzeige" für Daten vom Typ "URL"). Es steht zum Zeitpunkt der Prorammierung also nicht fest, welche App oder Klasse den Intent verarbeiten wird; es kann auch vorkommen, dass auf einem Android-Gerät es keine App gibt, die den Intent verarbeiten kann (dann wird die aufrufende App vom System beendet).  


== Explizite Intents ==
== Explizite Intents ==

Version vom 7. September 2018, 09:23 Uhr

In diesem Artikel oder Abschnitt fehlen wichtige Informationen. Hilf DroidWiki, sichte die Diskussion und recherchiere in deinen Quellen zu dem Thema Intent und füge die Informationen ein, aber bitte kopiere keine urheberrechtlich geschützten Inhalt in diesen Artikel.

Die Hauptautoren wurden noch nicht informiert. Bitte benachrichtige sie!

Ein Intent (deutsch: Vorhaben, Intention) ist in der Android-Programmierung eine asynchrone Nachricht, welche verwendet werden kann, um Aktionen von anderen App-Komponenten zu beziehen[1][2], bzw. andere App-Komponenten über Ereignisse zu informieren. Über Intents wird bspw. innerhalb einer App von einer Activity zu einer anderen Activity "springen".

Es können grundsätzlich zwei Arten von Intents unterschieden werden:

  • Explizite Intents dienen dazu, innerhalb derselben App zu einer anderen Activity zu springen. Hierbei muss der Klassen-Name dieser Activity angegeben werden. Das "Sprungziel" wird also explizit (ausdrücklich[3]) definiert.
  • Implizite Intents dienen dazu, eine Activity in einer anderen App zu öffnen, die eine bestimmte Aktion auf bestimmten Daten ausführen kann (z.B. Aktion "Anzeige" für Daten vom Typ "URL"). Es steht zum Zeitpunkt der Prorammierung also nicht fest, welche App oder Klasse den Intent verarbeiten wird; es kann auch vorkommen, dass auf einem Android-Gerät es keine App gibt, die den Intent verarbeiten kann (dann wird die aufrufende App vom System beendet).

Explizite Intents

Ein expliziter Intent erfordert, dass die zu startende Aktivität (bzw. der Klassenname) bekannt und angegeben wird. Typischerweise wird dieser Typ eines Intents dann verwendet, wenn der Name einer zu startenden Klasse bekannt ist, also bspw. innerhalb der eigenen App das Starten einer neuen/anderen Activity.

Implizite Intents

Im Gegensatz zu expliziten Intents, erfordern implizite Intents keinen Klassennamen, die zu startende Aktivität (Activity, Service, o.Ä.) muss also beim Erstellen des Intents nicht bekannt sein. Stattdessen wird ein allgemeiner Name einer auszuführenden Aktion verwendet, welche wiederum von anderen App-Komponenten (entweder der eigenen oder einer externen, anderen App) gehandhabt werden kann. Ein impliziter Intent wird meist dann verwendet, wenn davon ausgegangen werden kann, dass eine bestimmte Aktion potentiell auch von anderen Activities ausgeführt werden könnten (bspw. das Öffnen eines Weblinks).

Einzelnachweise

  1. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  2. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  3. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.