Deux activités principales dans AndroidManifest.xml

J'aimerais avoir des activités principales dans mon application. Donc, dans mon manifeste, j'ai mis

<activity android:name="mypackage1.MainActivity" android:label="@string/title_activity_main"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="mypackage2.MainActivity2" android:label="@string/title_activity_main2"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Deux icônes sont créées dans le menu de mes applications. Mais quand je clique sur chacun d'eux, la première activité MainActivity est toujours lancée. Est-il possible d'avoir deux activités principales? Si oui, qu'est ce qui ne va pas avec ce que j'ai fait? Merci

  • Thème ne s'applique pas à DialogFragment sur Android
  • ViewPager à l'intérieur de ViewPager
  • Comment modifier la taille du texte du titre sur la barre d'action?
  • Décompte sur l'édition d'impression sans fil <issue> d'Android Lint
  • Alignement d'ImageSpan en haut de TextView
  • Déterminez si deux objets Java sont de la même classe
  • Actualiser ou modifier le message AlertDialog
  • Android logcat: Envoyer les entrées de journal depuis l'appareil à l'aide du courrier électronique
  • Comment exécuter le même asynctask plus d'une fois?
  • Android: manipule le rappel OAuth à l'aide du filtre intentionnel
  • Questions sur le cryptage des actifs de l'application Google Play
  • Android 4.0 - API Niveau 14 vs API Google (Google Inc.) - API Niveau 14: Quelle est la différence?
  • 2 Solutions collect form web for “Deux activités principales dans AndroidManifest.xml”

    Le filtre d'intention LAUNCHER est ce qui détermine ce qui apparaît dans le tiroir / le lanceur d'application. C'est pourquoi vous présentez deux icônes.

    Toutefois, vous définissez également le filtre d'intention DEFAULT , qui définit l' Activity par défaut pour l'ensemble du paquet. Comme vous l'avez configuré deux fois, vous obtenez le problème de priorité du premier / dernier enregistré. Lorsque vous supprimez le filtre DEFAULT , vous pourrez commencer tout ce que vous cliquez sur le lanceur.

    En bref, supprimez la ligne suivante des deux activités:

     <category android:name="android.intent.category.DEFAULT" /> 

    Oui, marquez simplement deux ou plusieurs de vos <activity> s en tant que LAUNCHER dans votre manifeste. De plus, vous devez définir l' attribut android:taskAffinity sur vos deux activités de lancement, qui spécifient le paquet exact et l'activité à démarrer.

     <activity android:label="MyApp" android:name=".MyApp" android:taskAffinity="com.example.MainActivity"> <intent-filter> <action android:name=".MyApp"/> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:label="Settings" android:name=".Settings" android:taskAffinity="com.example.SettingsActivity" > <intent-filter> <action android:name=".Settings"/> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.