Bearbeiten von „Intent

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
{{Unvollständig}}
{{Unvollständig}}
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 "gesprungen".  
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:
Es können grundsätzlich zwei Arten von Intents unterschieden werden:
Zeile 6: Zeile 6:
* '''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).  
* '''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).  


Bei der Programmierung wird ein Intent durch ein Objekt der Klasse <code>android.content.Intent</code> repräsentiert.<ref>{{Cite web | url = https://developer.android.com/reference/android/content/Intent | title = API-Dokumentation zur Klasse android.content.Intent | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android)| language = en}}</ref>
Bei der Programmierung wird ein Intent durch ein Objekt der Klasse ''android.content.Intent'' repräsentiert.<ref>{{Cite web | url = https://developer.android.com/reference/android/content/Intent | title = API-Dokumentation zur Klasse android.content.Intent | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android)| language = en}}</ref>


== Explizite Intents ==
== Explizite Intents ==
Ein expliziter Intent erfordert, dass die zu startende Aktivität (bzw. der Klassenname) bekannt ist und angegeben wird. Typischerweise wird dieser Typ eines Intents dann verwendet, wenn der Name einer zu startenden Klasse bekannt ist. Dies ist beispielsweise der Fall, wenn man in der eigenen App eine andere Activity aufrufen möchte.
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 eine andere Activity zu Anzeige zu bringen.


Das folgende Quellcode-Beispiel für die Programmiersprache [[Java]] zeigt, wie ein expliziter Intent gestartet wird:
Das folgende Quellcode-Beispiel für die Programmiersprache [[Java]] zeigt, wie ein expliziter Intent gestartet wird:
Zeile 16: Zeile 16:
startActivity( einExpliziterIntent );
startActivity( einExpliziterIntent );
</pre>
</pre>
In der ersten Zeile wird ein neues Objekt der Klasse ''Intent'' aus dem Paket ''android.content'' erzeugt. Als zweites Argument wird hierbei eine bestimmte Activity über den Klassen-Namen spezifiziert (das erste Argument ist hier eine Selbst-Referenz auf das aufrufende Objekt, z.B. eine andere Activity). Die in der zweiten Zeile aufgerufene Methode ''startActivity(Intent)'' ist in der Klasse <code>android.content.Context</code><ref>{{Cite web | url = https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent) | title = API-Dokumentation zur Methode ''startActivity(Intent)'' in der Klasse ''android.content.Context'' | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android) | language = en}}</ref> definiert; diese Methode steht über Vererbung u.a. auch in der Klasse ''android.app.Activity'' zur Verfügung<ref>{{Cite web | url = https://developer.android.com/reference/android/app/Activity | title = API-Dokumentation zur Klasse android.app.Activity | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android)| language = en}}</ref>, so dass aus einer Activity zu einer anderen Activity "gesprungen" werden kann.
In der ersten Zeile wird ein neues Objekt der Klasse ''Intent'' aus dem Paket ''android.content'' erzeugt. Als zweiter Argument wird hierbei eine bestimmte Activity über den Klassen-Namen spezifiziert. Die in der zweiten Zeile aufgerufene Methode ''startActivity(Intent)'' ist in der Klasse ''android.content.Context''<ref>{{Cite web | url = https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent) | title = API-Dokumentation zur Methode ''startActivity(Intent)'' in der Klasse ''android.content.Context'' | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android) | language = en}}</ref> definiert; diese Methode steht über Vererbung u.a. auch in der Klasse ''android.app.Activity'' zur Verfügung<ref>{{Cite web | url = https://developer.android.com/reference/android/app/Activity | title = API-Dokumentation zur Klasse android.app.Activity | accessdate = 2018-09-07 | publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android)| language = en}}</ref>, so dass aus einer Activity zu einer anderen Activity "gesprungen" werden kann.


== Implizite Intents ==
== Implizite Intents ==
Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Android Wiki-Beiträge automatisch unter der „Creative Commons Attribution/Share-Alike Lizenz 3.0“ stehen. Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)