Die Anleitung zu Android Intents

View more Tutorials:

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

  1. Ein Activity beginnen
  2. Ein Sub-Activity beginnen
  3. 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 I ntent
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 

View more Tutorials: