Ich habe so viele verschiedene verwirrende Erklärungen gesehen.
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
Was ist die Bedeutung von
<action Android:name="Android.intent.action.MAIN" />
und
<category Android:name="Android.intent.category.LAUNCHER" />
und
<category Android:name="Android.intent.category.DEFAULT" />
Android.intent.action.MAIN
bedeutet, dass diese Aktivität der Einstiegspunkt der Anwendung ist, d. h. wenn Sie die Anwendung starten, wird diese Aktivität erstellt.
Aus den Dokumenten
ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Auch von hier
Aktivität Aktion Start als Haupteinstiegspunkt, erwartet nicht empfange Daten.
Android.intent.category.DEFAULT wird hauptsächlich für implizite Absichten verwendet. Wenn Ihre Aktivität durch eine implizite Absicht gestartet werden soll, sollte diese Kategorie in ihren Filter aufgenommen werden .. Wenn Ihre Aktivität durch eine implizite Absicht ausgelöst werden kann, wenn keine bestimmte Kategorie zugewiesen ist, sollte der Filter für diese Kategorie diese Kategorie enthalten.
Android.intent.category.LAUNCHER
category - Gibt zusätzliche Informationen zu der auszuführenden Aktion.
CATEGORY_LAUNCHER
bedeutet, dass es im Launcher als Anwendung auf oberster Ebene angezeigt werden soll
Siehe die Dokumente ..
ACTION_MAIN
gilt als Einstiegspunkt für die Anwendung. Normalerweise kombiniert es sich mit CATEGORY_LAUNCHER
in einem <intent-filter>
, um auf eine Aktivität hinzuweisen, die im Startbildschirm des Startbildschirms angezeigt werden soll, oder in einem anderen Bereich, der sich selbst als Startprogramm betrachtet. Solche "Launchers" können PackageManager
mit queryIntentActivities()
abfragen, um solche Aktivitäten zu finden und sie dem Benutzer anzuzeigen.
ACTION_MAIN
kann jedoch für andere spezielle Zwecke in Kombination mit anderen Kategorien verwendet werden. Beispielsweise gibt CATEGORY_CAR_DOCK
mit ACTION_MAIN
eine Aktivität an, die als Kandidat gelten soll, der angezeigt werden soll, wenn der Benutzer sein Telefon in ein vom Hersteller bereitgestelltes Fahrzeugdock ablegt.
Wenn eine Intent
mit startActivity()
verwendet wird und die Intent
noch nicht in einer Kategorie platziert ist, wird sie in CATEGORY_DEFAULT
platziert. Daher muss ein <activity>
<intent-filter>
einige <category>
angeben, wobei <category Android:name="Android.intent.category.DEFAULT" />
verwendet wird, wenn nichts anderes vorhanden ist.
<action Android:name="Android.intent.action.MAIN"/>
Ist die Hauptaktivität für diese Anwendung
<category Android:name="Android.intent.category.LAUNCHER" />
Es ist in der Kategorie LAUNCHER, was bedeutet, dass es ein Symbol in allem bekommt, was sich selbst als „Launcher“ versteht, wie z. B. auf dem Startbildschirm
<category Android:name="Android.intent.category.DEFAULT" />
Der Aufruf von startActivity () fügt immer die Kategorie DEFAULT hinzu, wenn keine andere Kategorie angegeben ist.
Fügen Sie im Allgemeinen nur Android.intent.category.DEFAULT
Hinzu, auch wenn Sie andere Kategorien haben. Dies garantiert, dass, wenn Requesting Intent keine Kategorien bereitstellt, die Absicht mit der Funktion startActivity(intent)
, dann kann Ihre Empfangsaktivität auch diese Absichten erhalten ..
Quelle: The Busy Coders Guide to Android Entwicklung