Die Absicht ist die Hauptkomponente von Android. Es handelt sich um ein Nachrichtenobjekt, das zwischen Komponenten wie Content Providern, Aktivitäten, Diensten usw. übergeben wird.
Klassifizierung der Absicht
Impliziter Intent
Diese Absicht gibt eine Aktion an, die von jeder App auf dem Gerät aufgerufen werden kann und uns ermöglicht, eine Aktion auszuführen. Sie hat keine genaue Kenntnis über die Zielseite. Sie kann eine andere App oder eine eigene Komponente der App öffnen und es gibt viele andere Optionen. Beispiele: Heruntergeladener Song, PDF, Bild, Dokument, Anrufwählung, Kartenposition, etc.
Syntax zum Öffnen von Google Maps:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
startActivity(intent);
Expliziter Intent
Diese Absicht gibt die Komponente in einer App an. Mit dieser Absicht können wir eine bestimmte App-Komponente starten, wie z.B. eine bestimmte Aktivität oder einen bestimmten Dienst in unserer Anwendung. Mit dieser Absicht können wir Daten von einer Aktivität an eine andere übergeben. Beispiele: startActivity (um herauszufinden, welche Aktivität gestartet wird), einen Dienst starten, um eine Datei herunterzuladen.
Syntax eines expliziten Intent:
Intent explicit_intent = new Intent(MainActivity.this, Explicit_intent.class);
startActivity(explicit_intent);
Einige Verwendungen der Absicht in Android:
- Eine Aktivität starten.
- Den Dienst starten.
- GEO-Standort auf der Karte anzeigen.
- Eine Nachricht senden.
- Einen Anruf tätigen.
Wie man einen expliziten Intent auf einem Gerät verwendet
Schritt 1: In diesem Schritt erstellen wir ein neues Android-Projekt in Android Studio.
Schritt 2: Gestalten Sie die Benutzeroberfläche der activity_main-Datei. Entwerfen Sie zwei Buttons für den expliziten Intent und den impliziten Intent.
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/bt_explicit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:layout_gravity="center_horizontal"
android:text="EXPLICIT INTENT"
android:onClick="callSecondActivity" />
<Button
android:id="@+id/bt_implicit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center_horizontal"
android:text="IMPLICIT INTENT" />
</LinearLayout>
Schritt 3: MainActivity.java
package com.example.explicitimplicitintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button bt_explicit;
Button bt_implicit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_explicit = findViewById(R.id.bt_explicit);
bt_implicit = findViewById(R.id.bt_implicit);
bt_implicit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri Intent implicit_intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:37.7749,-122.4194"));
startActivity(implicit_intent);
Toast.makeText(MainActivity.this, "Clicked Implicit Intent Button", Toast.LENGTH_SHORT)
.show();
}
});
}
Public void callSecondActiviy(View view) {
Intent explicit_intent = new Intent(MainActivity.this, Explicit_intent.class);
startActivity(explicit_intent);
Toast.makeText(MainActivity.this, "Clicked Explicit Intent Button", Toast.LENGTH_SHORT)
.show();
}
}
Schritt 4: Gestalten Sie die Benutzeroberfläche der zweiten Layout-Datei. Erstellen Sie eine neue Aktivität und benennen Sie sie activity_explicit_intent. In dieser Aktivität verwenden wir einfache Textansichten, um dem Benutzer mitzuteilen, dass er sich jetzt auf der zweiten Aktivität befindet. Erstellen Sie dann den Button, der verwendet wird, um zur ersten Aktivität zurückzukehren.
activity_explicit_intent.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Explicit_intent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="60dp"
android:text="Explicit Intent "
android:textSize="20sp" />
<Button
android:id="@+id/bt_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Call First Activity"
android:onClick="callFirstActivity"
android:layout_gravity="center"
android:layout_marginTop="10dp" />
</LinearLayout>
Schritt 5: Erstellen Sie eine neue Java-Klasse namens Explicit_intent.
Explicit_intent.java
package com.example.explicitimplicitintent;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class Explicit_intent extends AppCompatActivity {
Button bt_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_explicit_intent);
bt_back = findViewById(R.id.bt_back);
}
public void callFirstActivity(View view) {
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
Toast.makeText(this, "We are moved to First Activity", Toast.LENGTH_SHORT)
.show();
}
}
Ausgabe: