codestory

Die Anleitung zu Android Intents

  1. Was ist Intent?
  2. Die Type vom Intent
  3. Explizites Intent
  4. Der Intent-Filter (Intent Filter)
  5. Das implizite Intent 

1. Was ist Intent?

Intent (Die Absicht) ist die asynchronen Nachrichten, die die Applikationsteile bei der Anforderung der Funktion aus anderen Android Elemente. Durch Intents können Sie mit den Elemente aus der Appliaktion so gleich wie mit den in einer anderen Applikation eingepackten Elemente interaktivieren. Zum Beispiel, ein Activity kann ein anderes Activity vom außen um ein Foto zu photographieren
intent ist das Objekt von der Klasse android.content.Intent. Ihre Kode kann Intent in dem Android System mit der Festlegung von Zielelemente senden
zum Beispiel: Durch die Methode startActivity() können Sie ein Intent definieren um ein anderen Activity aufzurufen. Bei dem Ziel-Activity können Sie durch die Methode startActivity() die Absicht des Sender bestimmen um das Activity zu starten.

Ein Intent kann die Daten durch ein Bundle enthalten. Die Daten kann durch die Aufnahmenelemente benutzt werden
Wir können Intent für das folgende Zweck benutzen
  • Ein Activity beginnen
  • Ein Sub-Activity beginnen
  • Ein Dienstleistung (Service) beginnen
Nach dem Forschung über Intent können Sie detailiert über Android Service lernen:

2. Die Type vom Intent

Android unterstützt 2 Type von Intent , das sind explizite Intent (explicit) und implizite Intent (implicit).

Ein Applikation kann das Ziel-element direkt in Intent bestimmen (Das angeforderte Ziel ist klar) oder kann das Android System bei der Schatzung der in Zieldaten registrierten Elementen fordern um ein Element, danach die Anforderung gesendet wird, auszuwählen (implizite Intent)

3. Explizites Intent

Explizite Intent (Explicit intents): ist die Absicht (intent), die den Name der Zielelemente zur Behandlung bestimmt, davon wird das Feld Ziel (eingestellt) eine bestimmte Wert durch die Methode setComponent() oder setClass().gesetzt
Zum Beispiel: Intent erstellen
// Create the Intent with the target of Greeting Activity.
// Intent(FirstActivity, SecondActivity.class)
Intent intent = new Intent(this,GreetingActivity.class);

// The data attached
intent.putExtra("firstName",firstName);
intent.putExtra("lastName", lastName);

// Start Activity (GreetingActivity)
// (No need feedback from the activity is called)
this.startActivity(intent);


// Start Activity and will have a feedback from the activity is called.
this.startActivityForResult(intent, MY_REQUEST_CODE);
Oder:
// Way 1.
Intent mIntent = new Intent(this, GreetingActivity.class);
Bundle extras = mIntent.getExtras();
extras.putString("firstName", "<firstName>");
extras.putString("látName", "<lastName>");

// Way 2.
Intent mIntent2 = new Intent(this, GreetingActivity.class);
Bundle mBundle = new Bundle();
mBundle.putString("firstName", "<firstName>");
mBundle.putString("látName", "<lastName>");
mIntent2.putExtras(mBundle);

// Way 3:
// Using putExtra()
Intent mIntent3 = new Intent(this, GreetingActivity.class);
mIntent3.putExtra("firstName", "<firstName>");
mIntent3.putExtra("látName", "<lastName>");
Bei dem Ziel- Activity :
Intent intent = this.getIntent();

String firstName= intent.getStringExtra("firstName");
String lastName = intent.getStringExtra("lastName");

// Or
Bundle extras = this.getIntent().getExtras();

String firstName1 = extras.getString("firstName");
String lastName2  = extras.getString("lastName");
OK, Sie können die einfachen Beispielen unten anschauen

4. Der Intent-Filter (Intent Filter)

Wenn Sie ein Activity oder eine Service erstellen, sollen Sie sie mit AndroidManifest.xml melden. Normaleweise wenn Sie sie mit der Hilfe von wizard in Android Studio erstellen, wird die Registriereungscode automatisch in AndroidManifest.xml erstellt. Zum Beispiel
Sie können finden, dass es in der Meldung von Activity in AndroidManifest.xml den Tag <intent-filter> geben kann. Dieser Tag wird benutzt, um die Intentstype, die nach dem Activity geschickt werden und von dem Activity akzeptiert werden, anzudeuten
Wenn Sie ein implizite Inten (Implicit Intent) erstellen, sucht das System Android die angemessenen Elemente durch den Vergleich zwischen die Inhalt der Intent und der Filter der Intent, die in der File manifest der anderen Applikation des Gerät meldet wird. Wenn Intent dem Intenfilter entspricht, startet das System die Elemente und überträgt ins Intentobjekt
Das Beispiel
** AndroidManifest.xml **
.....

<activity android:name=".HelloWorld"
   android:label="@string/app_name">
   <intent-filter>
       <action android:name="android.intent.action.VIEW"/>
       <category android:name="android.intent.category.DEFAULT"/>
       <category android:name="android.intent.category.BROWSABLE"/>
       <data android:scheme="http" android:host="o7planning.org"/>
   </intent-filter>
</activity>

...
Zum Beispiel: Erstellen Sie ein Implicit Intent, das auf dem oben Activity rufen kann (Es entspricht dem Filter Intent).
// An implicit intent, requested to view a URL

Intent intent = new Intent (Intent.ACTION_VIEW, Uri.parse("http://o7planning.org"));
startActivity(intent);

5. Das implizite Intent 

Implizite Intent (implicit Intents): sind die Absicht (Intent), die kein Zielelement bestimmen aber alle vollen Informationen stehen zur Verfügung, damit das System die besten Elementen zur Zieldurchführung festlegen kann. Bitte schauen Sie eine Applikation zur Listierung aller Restaurant in der Nähe von Ihnen an. Wenn Sie auf ein gewähltes Restaurant klicken, fragt die Applikation einer anderen Applikation nach der Routen zum Restaurant. Um diese Dinge zu schaffen, kann sie der Applikation Google Maps eine klare Absicht direkt schicken oder eine implizite Absicht schicken. Die Absicht wird für alle Applikation übergetragt, die die Landkarten (map) bieten (Z.B Yahoo Maps)
Einige Beispiele mit impliziter Intent
Ein Beispiel mit dem Implicit Intent: Wenn Sie auf den Button klicken, sendet die Applikation dem Android System eine Forderung nach der Photographierung aus Camera und schreiben die Foto-File in einem Ordner auf

Anleitungen Android

Show More