2016-06-29 11 views
1

den folgenden Code vor:"MAIN" und "Launchers" sind redundant für die Trägerrakete Aktivität

<activity 
    android:name=".activity.SplashScreenAct" 
    android:label="Logo"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Sind "MAIN" und "LAUNCHER" redundant für eine Aktivität Angabe einer Trägerrakete Aktivität zu sein? Gibt es eine Situation, in der wir nur "MAIN", aber nicht "LAUNCHER" verwenden würden? Gibt es eine Situation, in der wir nur "LAUNCHER", aber nicht "MAIN" verwenden würden? Könnte es mehrere "LAUNCHER" -Aktivitäten in einer Anwendung geben?

Antwort

2

Beantwortung teilweise die Frage:

MAIN und LAUNCHER sind zum Spezifizieren einer Aktivität nicht redundant eine Trägerrakete Aktivität. Angenommen, Sie haben zwei Aktivitäten in Ihrer App. Wenn Sie zwei Startprogramme auf dem Startbildschirm haben möchten - eine startet die erste Aktivität, während die andere die zweite startet, müssen Sie sowohl MAIN als auch LAUNCHER im Tag <intent-filter> behalten. Sie überspringen einen von ihnen aus einer der Aktivitäten und Sie sehen nur ein physisches Starter-Symbol auf Ihrem Startbildschirm - die andere Aktivität startet.

Sie behalten beide MAIN und LAUNCHER in beiden Aktivitäten, Sie können zwei physische Launcher-Symbole auf Ihrem Startbildschirm sehen. Jeder startet die zugehörige Aktivität.

Etwas verwirrend, aber diese Analogie könnte Ihnen helfen: In einer Gruppe von Menschen werden Sie der Anführer sein, aber niemand wird über Sie wissen (MAIN). Jeder wird dich kennen, du wirst das Gesicht der Gruppe sein, aber nicht der Anführer (LAUNCHER).

+0

Ja, das verstehe ich. Aber trotzdem können wir MAIN nicht ohne LAUNCHER verwenden und wir können LAUNCHER nicht ohne MAIN verwenden? –

1

Sind "MAIN" und "LAUNCHER" überflüssig, um eine Aktivität als Startaktivität anzugeben?

, dass ein nicht wäre, wobei diese berücksichtigt Unterschiede in

android.intent.action.MAIN 

bedeutet, dass die jeweilige Aktivität der Eintrittspunkt der Anwendung ist, das heißt, wenn Sie die Anwendung starten, diese Aktivität erstellt wird.

Von dieser documentation

Kategorie - Gibt zusätzliche Informationen über die Aktion auszuführen, deshalb: android.intent.category.LAUNCHER

sagt, dass es in dem Launcher als Top-Level-Anwendung

launcher

erscheinen soll

Logik der letzten zwei Fragen basierend auf den oben genannten Informationen setzt diese auf Fragen zu "Nein", da es die entsprechenden Antworten ist.

Gibt es irgendeine Situation, in der wir nur "LAUNCHER", aber nicht "MAIN" verwenden würden?

Könnte es mehrere "LAUNCHER" -Aktivitäten in einer Anwendung geben?

Verwandte Themen