webentwicklung-frage-antwort-db.com.de

Was ist eine Absicht in Android?

  • Was ist ein Intent in Android?
  • Kann jemand mit einem Beispiel ausarbeiten?
  • Welche Arten von Absichten gibt es und warum verwenden wir sie?
  • Warum sind Absichten in Android so wichtig?
334
Nikunj Patel

Ein Absicht ist eine "Absicht", eine Handlung auszuführen; mit anderen Worten,

ein Messaging-Objekt, mit dem Sie eine Aktion von einem anderen anfordern können App-Komponente

Eine Absicht ist im Grunde eine Nachricht, die besagt, dass Sie etwas getan haben oder möchten. Je nach Absicht lauschen Apps oder das Betriebssystem darauf und reagieren entsprechend. Stellen Sie sich das als eine tolle E-Mail an eine Gruppe von Freunden vor, in der Sie Ihrem Freund John anweisen, etwas zu tun, oder an Freunde, die X ( "Absichtsfilter" ) können, um X zu tun Andere Leute werden die E-Mail ignorieren, aber John (oder Freunde, die X können) werden darauf reagieren.

Um auf eine Broadcast-Absicht zu hören (wie das Klingeln des Telefons oder ein SMS wird empfangen)), implementieren Sie ein Broadcast-Empfänger , dem die Absicht übergeben wird Damit Sie die App-Absicht eines anderen wie "Bild aufnehmen" behandeln können, deklarieren Sie ein Absichtsfilter in der Manifestdatei Ihrer App .

Wenn Sie eine Absicht auslösen möchten, etwas zu tun, wie das Aufklappen des Dialers, dann eine Absicht auslösen sagen, dass Sie es tun werden.

475
Chirag

Was ist eine Absicht?

Ein Intent ist im Grunde eine Nachricht, die zwischen Komponenten (wie Aktivitäten , Services, Broadcast Empfänger, und Inhaltsanbieter ). 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:

  • API-Aufrufe sind synchron, während absichtsbasierte Aufrufe asynchron sind.
  • API-Aufrufe werden zur Kompilierungszeit gebunden, während absichtsbasierte Aufrufe zur Laufzeit gebunden werden.

Natürlich können Absichten genau wie API-Aufrufe funktionieren, 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 Vorsatzfilter ausführen kann, wird aufgerufen über die Android Plattform, um die Aufgabe zu erledigen. Dies bedeutet, dass keine der Komponenten die Existenz der anderen erkennt, 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 Plattform Android) erreicht.

Dies führt zu enormen Möglichkeiten wie:

  • Mix and Match bzw. Plug and Play von Komponenten zur Laufzeit.
  • Ersetzen der eingebauten Android Anwendungen durch benutzerdefinierte entwickelte Anwendungen.
  • Wiederverwendung auf Komponentenebene innerhalb und zwischen Anwendungen.
  • Serviceorientierung auf der granularsten Ebene, wenn ich sagen darf.

Hier sind weitere technische Details zu Absichten aus der Android Dokumentation .

Eine Absicht ist eine abstrakte Beschreibung einer auszuführenden Operation. Es kann mit startActivity verwendet werden, um eine Aktivität zu starten, und mit broadcastIntent zu senden es an alle interessierten BroadcastReceiver Komponenten und startService (Intent) oder bindService (Intent, ServiceConnection, int) zur Kommunikation mit einem Hintergrunddienst.

Ein Intent bietet die Möglichkeit, eine späte Laufzeitbindung zwischen dem Code in verschiedenen Anwendungen durchzuführen. Die wichtigste Verwendung ist der Start von Aktivitäten, bei denen es sich um den Klebstoff zwischen Aktivitäten handelt. Grundsätzlich handelt es sich um eine passive Datenstruktur mit einer abstrakten Beschreibung einer auszuführenden Aktion. Die wichtigsten Informationen in einer Absicht sind:

  • action Die allgemeine auszuführende Aktion, z. B. ACTION_VIEW, ACTION_EDIT, ACTION_MAIN usw.
  • Daten Die zu bearbeitenden Daten, z. B. ein Personendatensatz in der Kontaktdatenbank, ausgedrückt als Uri.

Erfahren Sie mehr

158
mr.boyfox

Absichten sind eine Möglichkeit, Android mitzuteilen, 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 2 Arten von Absichten

1. Explizite Absichten

wird verwendet, um eine bestimmte Komponente aufzurufen. Wenn Sie wissen, welche Komponente Sie starten möchten und Sie dem Benutzer nicht die freie Kontrolle über die zu verwendende Komponente geben möchten. Sie haben beispielsweise eine Anwendung mit 2 Aktivitäten. Aktivität A und Aktivität B. Sie möchten Aktivität B aus Aktivität A starten. In diesem Fall definieren Sie eine explizite Absicht, die auf Aktivität B abzielt, und rufen sie dann direkt auf.

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. Wird nur eine Komponente gefunden, startet Android die Komponente direkt. Sie haben beispielsweise eine Anwendung, die die Kamera zum Aufnehmen von Fotos verwendet. Eine der Eigenschaften Ihrer Anwendung ist, 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 Möglichkeit geben, die zu verwendende externe Anwendung auszuwählen, wenn er über mehrere verfügt. In diesem Fall würden Sie keine explizite Absicht verwenden. Stattdessen sollten Sie eine implizite Absicht verwenden, deren Aktion auf ACTION_SEND und deren Datenextrakt auf den URI des Fotos festgelegt ist.

Eine explizite Absicht wird immer zu ihrem Ziel geliefert, egal was sie enthält; Der Filter wird nicht herangezogen. Eine implizite Absicht wird jedoch nur dann an eine Komponente übergeben, wenn sie einen der Filter der Komponente passieren kann

Absichtsfilter

Wenn eine Absicht an das Android System gesendet wird, ermittelt es die geeigneten Anwendungen für diese Absichten. Wenn für diese Art von Absichten mehrere Komponenten registriert wurden, bietet Android dem Benutzer die Möglichkeit, eine davon zu öffnen.

Diese Bestimmung basiert auf IntentFilters. Ein IntentFilters gibt die Arten von Intent an, auf die eine Aktivität, ein Dienst oder ein Broadcast Receiver reagieren 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 Broadcasts ein Receiver verarbeiten kann. Damit kann die entsprechende Komponente Intents des deklarierten Typs empfangen. IntentFilters werden normalerweise über die AndroidManifest.xml-Datei definiert. Für BroadcastReceiver ist es auch möglich, diese 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 Absichtsfilter definiert, kann sie nur durch explizite Absichten aufgerufen werden.

Es folgen 2 Möglichkeiten, einen Filter zu definieren

1.Manifest-Datei

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 Rundfunkempfänger die Absicht nur dann empfängt, wenn Ihre Anwendung ausgeführt wird. Dann sollten Sie Ihren Absichtsfilter während der Laufzeit (programmgesteuert) definieren. Beachten Sie, dass dies nur für Rundfunkempfänger funktioniert.

48
Varun Bhatia

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.

Android-Plattform ermöglicht den Übergang mittels Intent Interface.

Von hier stammen die folgenden Wörter: sing Intent Demo und ich empfehle Ihnen, dieses Beispiel durchzugehen, da sie auch eine Codedatei bereitgestellt haben. So können Sie es verwenden und leicht verstehen.

12
Paresh Mayani

Android Intent

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 behandelt.

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.

Ein Android Intent kann verwendet werden, um die folgenden 3 Aufgaben auszuführen:

  1. Öffnen Sie eine andere Aktivität oder Dienstleistung aus der aktuellen Aktivität
  2. Daten zwischen Aktivitäten und Diensten übertragen
  3. Delegieren Sie die Verantwortung an eine andere Anwendung. Sie können zum Beispiel Intents verwenden, um die Browseranwendung zum Anzeigen einer URL zu öffnen.

Absicht kann grob in 2 Kategorien eingeteilt werden. Es gibt keine Schlüsselwörter für diese Kategorie und nur eine umfassende Klassifizierung der Verwendung von Android Intents).

Explicit Android Intent

Explicit Android Intent ist die Absicht, in der Sie explizit die Komponente definieren, die vom Android System aufgerufen werden soll.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

Implicit Android Intent

Implicit Android Intents ist die Absicht, bei der Sie anstelle der genauen Definition der Komponenten die Aktion definieren, die Sie ausführen möchten. Die Entscheidung, mit dieser Aktion umzugehen, bleibt dem Betriebssystem überlassen. Das Betriebssystem entscheidet, welche Komponente Lass uns ein Beispiel sehen:

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);

Weitere Informationen finden Sie weiter unten

http://developer.Android.com/reference/Android/content/Intent.html

9
IntelliJ Amiya

Nach ihrer Dokumentation:

Ein Intent ist ein Objekt, das die Laufzeitbindung zwischen separaten Komponenten (z. B. zwei Aktivitäten) bereitstellt. Die Absicht repräsentiert die "Absicht einer App, etwas zu tun". Sie können Absichten für eine Vielzahl von Aufgaben verwenden, aber meistens werden sie verwendet, um eine andere Aktivität zu starten.

Hier ist der Link mit 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 wissen, um welche Aktivität es sich handelt) die unten angegebene Absicht

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}
9
kta

Eine Absicht ist eine abstrakte Beschreibung einer auszuführenden Operation. Es kann mit startActivity zum Starten einer Aktivität, mit broadcastIntent zum Senden an interessierte BroadcastReceiver-Komponenten und mit startService (Intent) oder bindService (Intent, ServiceConnection, int) zum Kommunizieren mit einem Hintergrunddienst verwendet werden.

Weitere Details finden Sie unter diesen 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 viel mehr artikel verfügbar.

8
Dinesh Sharma

Was ist Absicht?

Es ist eine Art Nachricht oder Information, die an die Komponenten übergeben 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
Explizite Absicht

Implizite Absicht wird verwendet, um die Systemkomponenten aufzurufen

Beispiel

Intent i = newIntent(Android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.Amazon.com”));

startActivity(i);

Explizite Absicht wird verwendet, um die Aktivitätsklasse aufzurufen.

Beispiel

Intent intent = newIntent (this, SecondActivity.class);

startActivity(intent);

sie können mehr lesen

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overviewhttp://developer.Android.com/reference/Android/content/Intent.html

5
Mina Fawzy

Absicht ist die Absicht, eine Operation auszuführen.

Im Detail können Sie sich beziehen

http://developer.Android.com/reference/Android/content/Intent.html

Auch in meinem Blog

http://emergingandroidtech.blogspot.in/2014/11/what-is-intent-in-Android.html

Schauen Sie, ob es für Sie hilfreich ist.

Danke.

2
Shriyanshu Jain

Ein Intent ist eine Klasse, die die Informationen für bestimmte Aktionen bindet.

beispiel: Daten einer Aktivität an eine andere Aktivität übergeben, wenn der Benutzer solche Aktionen in ausführt

gegenwärtige Aktivität.

2
madarkife

Um die Absichten im Grunde zu verstehen, empfehle ich Ihnen, die Website zu durchsuchen: http://developer.Android.com/guide/topics/intents/intents-filters.html

Außerdem habe ich in meinem persönlichen Blog über Absichten mit Beispielen gesprochen: http://androiddesk.wordpress.com/2011/12/24/explicit-intent/

http://androiddesk.wordpress.com/2012/01/13/implicit-intent/

Schauen Sie doch einfach mal rein, wenn Sie meinen, es wäre nützlich.

Danke

2
Deepthi G

Im weitesten Sinne können wir Intent als definieren

Wenn eine Aktivität eine andere Aktivität starten möchte, wird ein Objekt mit dem Namen Intent erstellt, das angibt, welche Aktivität gestartet werden soll.

1
Kartik Goyal

Absichten werden verwendet, um eine andere Aktivität von einer Aktivität aus zu initiieren. Sie werden im Wesentlichen für mehrere Zwecke verwendet, z. B. zum Senden von Daten an eine andere Aktivität von einer Aktivität aus und zum Auslösen von Zwecken.

Grundsätzlich gibt es zwei Arten

  1. Implizite Absichten.

  2. Explizite Absichten.

Als Anfänger weiß ich so viel, ich denke, dass dies eine grundlegende Vorstellung von Android Absichten geben wird

0
Soorya Prakash

Aus dem Papier Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013Link

Die Absicht wird in einigen kleinen aber effektiven Zeilen verstanden

  1. Android unterstützt eine einfache Form der IPC (Inter Process Communication) über Intents
  2. Intent Messaging ist ein Framework für die asynchrone Kommunikation zwischen Android Komponenten (Aktivität, Dienst, Inhaltsanbieter, Rundfunkempfänger).
  3. Diese Komponenten können in derselben oder in verschiedenen Apps (d. H. Prozessen) ausgeführt werden.
  4. Aktiviert sowohl Punkt-zu-Punkt- als auch Veröffentlichungs-Abonnement-Messaging-Domänen
  5. Die Absicht selbst stellt eine Nachricht dar, die die Beschreibung des auszuführenden Vorgangs sowie die an den/die Empfänger zu übergebenden Daten enthält.

Aus this thread einer einfachen Antwort der Android Architektin Dianne Hackborn geht hervor, dass es sich um einen data container Handelt, der es 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 Architekturgesichtspunkt Binder Android.

0
Zahan Safallwa

Eine Android Anwendung kann null oder mehr Aktivitäten enthalten. Wenn Ihre Anwendung mehr als eine Aktivität enthält, müssen Sie häufig von einer zu einer anderen navigieren. In Android navigieren Sie zwischen Aktivitäten durch sogenannte Mit putExtra () können Sie einige Daten an die Aktivität übergeben, die Sie mit Intent starten möchten.

0
Shaon Hasan