- Was ist eine Absicht in Android?
- Kann jemand ein Beispiel ausarbeiten?
- Was sind die Arten von Absichten und warum verwenden wir sie?
- Warum sind Absichten in Android so wichtig?
android
android-intent
Nikunj Patel
quelle
quelle
Antworten:
Eine Absicht ist eine "Absicht", eine Handlung auszuführen; mit anderen Worten,
Eine Absicht ist im Grunde eine Nachricht, die besagt, dass Sie etwas getan haben oder wollen. Je nach Absicht warten Apps oder das Betriebssystem möglicherweise darauf und reagieren entsprechend. Stellen Sie sich das als eine tolle E-Mail an eine Reihe von Freunden vor, in der Sie Ihrem Freund John sagen, dass er etwas tun soll, oder an Freunde, die X ( "Absichtsfilter" ) ausführen können, um X auszuführen. Die anderen Leute ignorieren die E-Mail. aber John (oder Freunde, die X können) werden darauf reagieren.
Um auf eine Broadcast-Absicht zu warten (z. B. wenn das Telefon klingelt oder eine SMS empfangen wird), implementieren Sie einen Broadcast-Empfänger , dem die Absicht übergeben wird. Um zu deklarieren, dass Sie die App-Absicht eines anderen wie "Bild aufnehmen" verarbeiten können, deklarieren Sie einen Intent-Filter in der Manifest-Datei Ihrer App .
Wenn Sie eine Absicht , etwas zu tun feuern wollen, wie die Dialer - Pop - up, Sie eine Absicht abfeuern sagen Sie werden.
quelle
Was ist eine Absicht?
Eine Absicht ist im Grunde eine Nachricht, die zwischen Komponenten (wie Aktivitäten , Diensten, Rundfunkempfängern und Inhaltsanbietern ) übertragen wird. Es entspricht also fast den Parametern, die an API-Aufrufe übergeben werden. Die grundlegenden Unterschiede zwischen API-Aufrufen und dem Aufrufen von Komponenten über Absichten sind:
Natürlich können Absichten genau wie API-Aufrufe verwendet werden, indem sogenannte explizite Absichten verwendet werden, die später erläutert werden. Aber meistens sind implizite Absichten der richtige Weg, und das wird hier erklärt.
Eine Komponente, die eine andere aufrufen möchte, muss nur ihre Absicht zum Ausdruck bringen, einen Job auszuführen. Und jede andere Komponente, die existiert und behauptet hat, dass sie einen solchen Job durch Absichtsfilter ausführen kann , wird von der Android-Plattform aufgerufen, um den Job auszuführen. Dies bedeutet, dass sich keine der Komponenten der Existenz des anderen bewusst ist, aber dennoch zusammenarbeiten kann, um das gewünschte Ergebnis für den Endbenutzer zu erzielen.
Diese unsichtbare Verbindung zwischen Komponenten wird durch die Kombination von Absichten, Absichtsfiltern und der Android-Plattform erreicht.
Dies führt zu enormen Möglichkeiten wie:
Weitere technische Details zu Absichten finden Sie in der Android-Dokumentation .
Erfahren Sie mehr
quelle
Mit Absichten können Sie Android mitteilen , was Sie tun möchten . Mit anderen Worten, Sie beschreiben Ihre Absicht. Mit Absichten kann dem Android-System signalisiert werden, dass ein bestimmtes Ereignis aufgetreten ist. Andere Komponenten in Android können sich über einen Absichtsfilter für dieses Ereignis registrieren.
Es folgen zwei Arten von Absichten
1. Explizite Absichten
wird verwendet, um eine bestimmte Komponente aufzurufen. Wenn Sie wissen, welche Komponente Sie starten möchten und dem Benutzer keine freie Kontrolle darüber geben möchten, welche Komponente verwendet werden soll. Sie haben beispielsweise eine Anwendung mit zwei Aktivitäten. Aktivität A und Aktivität B. Sie möchten Aktivität B über Aktivität A starten. In diesem Fall definieren Sie eine explizite Absicht, die auf Aktivität B abzielt, und verwenden sie dann, um sie direkt aufzurufen.
2. Implizite Absichten
Wird verwendet, wenn Sie eine Vorstellung davon haben, was Sie tun möchten, aber nicht wissen, welche Komponente gestartet werden soll. Oder wenn Sie dem Benutzer die Möglichkeit geben möchten, zwischen einer Liste der zu verwendenden Komponenten zu wählen. Wenn diese Absichten an das Android-System gesendet werden, sucht es nach allen Komponenten, die für die bestimmte Aktion und den Datentyp registriert sind. Wenn nur eine Komponente gefunden wird, startet Android die Komponente direkt. Sie haben beispielsweise eine Anwendung, die die Kamera zum Aufnehmen von Fotos verwendet. Eine der Funktionen Ihrer Anwendung besteht darin, dass Sie dem Benutzer die Möglichkeit geben, die von ihm aufgenommenen Fotos zu senden. Sie wissen nicht, über welche Art von Anwendung der Benutzer Fotos senden kann, und Sie möchten dem Benutzer auch die Option geben, auszuwählen, welche externe Anwendung verwendet werden soll, wenn er über mehrere verfügt. In diesem Fall würden Sie keine explizite Absicht verwenden.
Eine explizite Absicht wird immer an ihr Ziel geliefert, egal was sie enthält. Der Filter wird nicht konsultiert. Eine implizite Absicht wird jedoch nur dann an eine Komponente übermittelt, wenn sie einen der Filter der Komponente durchlaufen kann
Absichtsfilter
Wenn eine Absicht an das Android-System gesendet wird, werden geeignete Anwendungen für diese Absicht ermittelt. Wenn mehrere Komponenten für diese Art von Absichten registriert wurden, bietet Android dem Benutzer die Möglichkeit, eine davon zu öffnen.
Diese Bestimmung basiert auf IntentFilters. Ein IntentFilters gibt die Absichtstypen an, auf die eine Aktivität, ein Dienst oder ein Broadcast-Empfänger antworten kann. Ein Absichtsfilter deklariert die Funktionen einer Komponente. Es gibt an, welche Aktivitäten oder Dienste ausgeführt werden können und welche Arten von Sendungen ein Empfänger verarbeiten kann. Damit kann die entsprechende Komponente Absichten des deklarierten Typs empfangen. IntentFilters werden normalerweise über die Datei AndroidManifest.xml definiert. Für BroadcastReceiver ist es auch möglich, sie in der Codierung zu definieren. Ein IntentFilters wird durch seine Kategorie-, Aktions- und Datenfilter definiert. Es kann auch zusätzliche Metadaten enthalten.
Wenn eine Komponente keinen Intent-Filter definiert, kann sie nur von expliziten Intents aufgerufen werden.
Es folgen zwei Möglichkeiten, einen Filter zu definieren
1. Manifestdatei
Wenn Sie den Absichtsfilter im Manifest definieren, muss Ihre Anwendung nicht ausgeführt werden, um auf die im Filter definierten Absichten zu reagieren. Android registriert den Filter, wenn Ihre Anwendung installiert wird.
2.BroadCast-Empfänger
Wenn Sie möchten, dass Ihr Broadcast-Empfänger die Absicht nur empfängt, wenn Ihre Anwendung ausgeführt wird. Dann sollten Sie Ihren Absichtsfilter zur Laufzeit (programmgesteuert) definieren. Beachten Sie, dass dies nur für Rundfunkempfänger funktioniert.
quelle
Nach dem Schreiben einer einzelnen Aktivität muss zu einer anderen Aktivität gewechselt werden, um eine andere Aufgabe mit oder ohne Informationen aus der ersten Aktivität auszuführen.
Die Android-Plattform ermöglicht den Übergang über Intent Interface.
Die Wörter stammen von hier: Verwenden von Intent Demo und ich empfehle Ihnen, dieses Beispiel durchzugehen, da sie auch eine Codedatei bereitgestellt haben. so können Sie es verwenden und leicht das gleiche verstehen.
quelle
Android Absicht
Mit Android Intent können Sie von einer Android-Aktivität zu einer anderen navigieren. In diesem Tutorial werden anhand von Beispielen auch verschiedene Arten von Android-Absichten beschrieben.
Android Intent kann als einfaches Nachrichtenobjekt definiert werden, mit dem von einer Aktivität zu einer anderen kommuniziert wird.
Absichten definieren die Absicht einer Anwendung. Sie werden auch zum Übertragen von Daten zwischen Aktivitäten verwendet.
Mit einem Android Intent können folgende drei Aufgaben ausgeführt werden:
Absicht kann grob in 2 Kategorien eingeteilt werden. Es gibt keine Schlüsselwörter für diese Kategorie und nur eine breite Klassifizierung der Verwendung von Android-Absichten.
Explizite Android-Absicht
Explizite Android-Absicht ist die Absicht, in der Sie explizit die Komponente definieren, die vom Android-System aufgerufen werden muss.
Implizite Android-Absicht
Implizite Android-Absichten ist die Absicht, bei der Sie nicht die genauen Komponenten definieren, sondern die Aktion definieren, die Sie ausführen möchten. Die Entscheidung, diese Aktion auszuführen, bleibt dem Betriebssystem überlassen. Das Betriebssystem entscheidet, welche Komponente für implizite Absichten am besten ausgeführt werden kann. Sehen wir uns ein Beispiel an:
Weitere Informationen finden Sie weiter unten
quelle
Nach ihrer Dokumentation:
Hier ist der Link mit dem Beispiel: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Wie im Dokument beschrieben, verwenden Sie zum Starten einer Aktivität (Sie müssen auch verstehen, um welche Aktivität es sich handelt) die folgende Absicht
quelle
Eine Absicht ist eine abstrakte Beschreibung einer auszuführenden Operation. Es kann mit startActivity verwendet werden, um eine Aktivität zu starten, BroadcastIntent, um sie an interessierte BroadcastReceiver-Komponenten zu senden, und startService (Intent) oder bindService (Intent, ServiceConnection, int), um mit einem Hintergrunddienst zu kommunizieren.
Weitere Details finden Sie unter folgenden Links:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
Es sind noch viele weitere Artikel verfügbar.
quelle
Was ist Absicht?
Es ist eine Art Nachricht oder Information, die an die Komponenten weitergegeben wird. Es wird verwendet, um eine Aktivität zu starten, eine Webseite anzuzeigen, SMS zu senden, E-Mails zu senden usw.
Es gibt zwei Arten von Absichten in Android:
Implizite Absicht wird verwendet, um die Systemkomponenten aufzurufen
Explizite Absicht wird verwendet, um die Aktivitätsklasse aufzurufen.
Intent intent = newIntent (this, SecondActivity.class);
Sie können mehr lesen
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
quelle
Eine Absicht ist eine Klasse, die die Informationen für einige Aktionen bindet.
Beispiel: Übergeben von Daten einer Aktivität an eine andere Aktivität, wenn der Benutzer solche Aktionen in ausführt
gegenwärtige Aktivität.
quelle
Im weitesten Sinne können wir Absicht als definieren
quelle
quelle
Von dem Papier
Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
LinkDie Absicht wird in einigen kleinen, aber effektiven Zeilen verstanden
Aus diesem Thread geht eine einfache Antwort der Android-Architektin Dianne Hackborn hervor, wie
data container
sie tatsächlich ist.Aus Sicht der Android-Architektur :
Intent ist ein Datencontainer, der für die Kommunikation zwischen Prozessen verwendet wird. Es basiert auf dem
Binder
Standpunkt der Android-Architektur.quelle
Absichten werden verwendet, um eine andere Aktivität von einer Aktivität aus zu initiieren. Sie werden im Wesentlichen für verschiedene Zwecke verwendet, z. B. zum Senden von Daten an eine andere Aktivität von einer Aktivität und zum Auslösen von Zwecken.
Es gibt grundsätzlich zwei Arten
Implizite Absichten.
Explizite Absichten.
Als Anfänger weiß ich so viel, ich denke, dies wird eine grundlegende Vorstellung von Android-Absichten geben
quelle