2016-07-21 6 views
1

Was sind die Unterschiede zwischen:Unterschied zwischen intent.category.HOME allein in AndroidManifest.xml mit und auch mit intent.category.DEFAULT zugleich

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME"/> 
</intent-filter> 

und:

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 
+0

Mögliches Duplikat von http://stackoverflow.com/questions/5727828/what-is-the-purpose-of-android-intent-category-default – Bobby

Antwort

1

Siehe Antwort Hier

What is the meaning of android.intent.action.MAIN?

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.

Vom docs

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen. 

Auch aus here

Aktivität Aktion starten als Haupteinstiegspunkt, erwartet nicht zu Daten empfangen.

android.intent.category.DEFAULT ist vor allem für implizite Absichten verwendet. Wenn Ihre Aktivität durch eine implizite Absicht gestartet werden soll, sollte diese Kategorie in ihrem Filter enthalten sein. Wenn Ihre Aktivität möglicherweise implizit gestartet wird, wenn ihr keine bestimmte Kategorie zugewiesen ist, sollte ihr Intent-Filter diese Kategorie enthalten.

die Dokumentation sehen ..

  1. http://developer.android.com/reference/android/content/Intent.html
  2. http://developer.android.com/guide/topics/manifest/action-element.html

und andere Ansicht des @CommonsWare .... in dieser Antwort auch .... Sehen Sie es

Damit gilt ACTION_MAIN als Einstiegspunkt für die Anwendung.

Normalerweise kombiniert es mit CATEGORY_LAUNCHER in einer <intent-filter>, um eine Aktivität anzuzeigen, die im Launcher des Startbildschirms angezeigt werden sollte, oder in jedem anderen, der sich selbst als Startprogramm ansieht. Solche "Launcher" können PackageManager unter Verwendung von queryIntentActivities() abfragen, um solche Aktivitäten zu finden und sie dem Benutzer anzuzeigen.

Jedoch kann ACTION_MAIN in Kombination mit anderen Kategorien für andere spezielle Zwecke verwendet werden. Zum Beispiel gibt CATEGORY_CAR_DOCK mit ACTION_MAIN eine Aktivität an, die als ein Kandidat betrachtet werden sollte, der angezeigt wird, wenn der Benutzer sein Telefon in ein vom Hersteller bereitgestelltes Autodock legt.

Wenn ein Intent mit startActivity() verwendet wird, wenn die Intent nicht bereits in eine Kategorie gesetzt wird, wird es in CATEGORY_DEFAULT platziert. Daher muss ein <activity><intent-filter>einige<category> angeben, unter Verwendung <category android:name="android.intent.category.DEFAULT" /> wenn nichts anderes.