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.
Aus den Dokumenten
ACTION_MAIN with category CATEGORY_HOME
Auch von hier aus
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 mit einer impliziten Absicht gestartet werden soll, sollte diese Kategorie in den Filter aufgenommen werden. Wenn Ihre Aktivität möglicherweise von einer impliziten Absicht gestartet wird, wenn ihr keine bestimmte Kategorie zugewiesen ist, sollte der Intent-Filter diese Kategorie enthalten.
android.intent.category.LAUNCHER
Kategorie - Gibt zusätzliche Informationen zu der auszuführenden 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
MAIN
allein wird nicht "die Aktivität nach Hause starten".MAIN
hat viele Verwendungszwecke.ACTION_MAIN
wird als Einstiegspunkt für die Anwendung angesehen. Normalerweise wird es mitCATEGORY_LAUNCHER
in kombiniert<intent-filter>
, um eine Aktivität anzuzeigen, die im Startbildschirm des Startbildschirms oder in einem anderen Element angezeigt werden soll, das sich selbst als Startprogramm betrachtet. Solche "Starter" können solche Aktivitäten abfragenPackageManager
, um siequeryIntentActivities()
zu finden und dem Benutzer anzuzeigen.Allerdings
ACTION_MAIN
kann mit anderen Kategorien für andere spezielle Zwecke in Kombination verwendet werden. Zum BeispielCATEGORY_CAR_DOCK
mitACTION_MAIN
zeigt eine Aktivität , die einen Kandidaten in Betracht gezogen werden sollte gezeigt werden , wenn der Benutzer sein Handy in ein vom Hersteller gelieferten Auto Dock fällt.Wenn ein
Intent
verwendet wird mitstartActivity()
, wenn dasIntent
nicht bereits in einer Kategorie platziert ist, wird es in platziertCATEGORY_DEFAULT
. Daher<activity>
<intent-filter>
muss man einige angeben<category>
,<category android:name="android.intent.category.DEFAULT" />
wenn nichts anderes.quelle
ACTION_MAIN
, bei der kein Launcher im Stil eines Startbildschirms verwendet wird.<intent-filter>
mit den beiden<action android:name="android.intent.action.MAIN" />
und<category android:name="android.intent.category.LAUNCHER" />
.finish()
sofort aufgerufen wird, aber Benutzer werden denken, dass Ihre App kaputt ist.<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
Im Allgemeinen nur hinzufügen,
android.intent.category.DEFAULT
auch wenn Sie andere Kategorien haben. Dies garantiert, dassstartActivity(intent)
Ihre Empfangsaktivität auch diese Absichten empfangen kann , wenn das Anfordern von Absichten beim Starten der Absicht keine Kategorien bereitstellt .Quelle: Der Busy Coders-Leitfaden zur Android-Entwicklung
https://commonsware.com/Android/
quelle