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" />

CommonsWare
ACTION_MAIN
gilt als Einstiegspunkt für die Anwendung. Normalerweise verbindet es sich mit CATEGORY_LAUNCHER
in einem (n <intent-filter>
um eine Aktivität anzuzeigen, die im Launcher des Startbildschirms oder in irgendetwas anderem, das sich selbst als Launcher betrachtet, erscheinen soll. Solche “Werfer” können abfragen PackageManager
verwenden queryIntentActivities()
um solche Aktivitäten zu finden und dem Benutzer anzuzeigen.
Aber, ACTION_MAIN
kann in Kombination mit anderen Kategorien für andere spezielle Zwecke verwendet werden. Zum Beispiel, CATEGORY_CAR_DOCK
mit ACTION_MAIN
zeigt eine Aktivität an, die als Kandidat angesehen werden sollte, der angezeigt werden soll, wenn der Benutzer sein Telefon in ein vom Hersteller bereitgestelltes Autodock legt.
Wenn ein Intent
wird mit verwendet startActivity()
wenn die Intent
nicht bereits in eine Kategorie eingeordnet ist, in die es eingeordnet ist CATEGORY_DEFAULT
. Daher ein <activity>
<intent-filter>
angeben muss etwas <category>
verwenden <category android:name="android.intent.category.DEFAULT" />
wenn sonst nichts.

Lal
android.intent.action.MAIN
bedeutet, dass diese Aktivität der Einstiegspunkt der Anwendung ist, dh wenn Sie die Anwendung starten, wird diese Aktivität erstellt.
Von dem Dokumente
ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Auch von Hier
Aktivität Aktion Start als Haupteinstiegspunkt, erwartet keinen Datenempfang.
android.intent.category.DEFAULT wird hauptsächlich für implizite Absichten verwendet. Wenn Ihre Aktivität durch eine implizite Absicht gestartet werden soll, sollte sie diese Kategorie in ihren Filter aufnehmen. Wenn Ihre Aktivität möglicherweise durch eine implizite Absicht gestartet wird, wenn ihr keine bestimmte Kategorie zugewiesen ist, sollte ihr Absichtsfilter diese Kategorie enthalten.
android.intent.category.LAUNCHER
category — Liefert zusätzliche Informationen über die auszuführende Aktion.
CATEGORY_LAUNCHER
bedeutet, dass es im Launcher als Anwendung der obersten Ebene angezeigt werden sollte
Siehe die Dokumente..
- http://developer.android.com/reference/android/content/Intent.html
- http://developer.android.com/guide/topics/manifest/action-element.html

Shubhamhackz
<action android:name="android.intent.action.MAIN"/>
Ist die Hauptaktivität für diese Anwendung
<category android:name="android.intent.category.LAUNCHER" />
Es gehört zur LAUNCHER-Kategorie, was bedeutet, dass es in allem, was sich selbst als „Launcher“ bezeichnet, wie dem Startbildschirm, ein Symbol erhält
<category android:name="android.intent.category.DEFAULT" />
Der Aufruf von startActivity() fügt immer die DEFAULT-Kategorie hinzu, wenn keine andere Kategorie angegeben ist.
Im Allgemeinen nur hinzufügen android.intent.category.DEFAULT
auch wenn Sie andere Kategorien haben. Dadurch wird sichergestellt, dass beim Anfordern der Absicht keine Kategorien bereitgestellt werden, während die Verwendung der Absicht gestartet wird startActivity(intent)
dann kann Ihre Empfangsaktivität diese Absichten ebenfalls empfangen.
Quelle: The Busy Coders Guide to Android Development
https://commonsware.com/Android/
9977400cookie-checkWas bedeutet android.intent.action.MAIN?yes