15

アプリで2つの主要なアクティビティを実行したいと思います。だから私のマニフェストに私は入れました:

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

アプリメニューに2つのアイコンが作成されます。しかし、それぞれをクリックすると、最初のアクティビティMainActivityが常に起動されます。2つの主要な活動を行うことは可能ですか?もしそうなら、私がしたことの何が問題になっていますか?ありがとう

4

3 に答える 3

18

インLAUNCHERテントフィルターは、アプリドロワー/ランチャーに表示される内容を決定するものです。そのため、2つのアイコンが表示されます。

ただし、パッケージ全体DEFAULTのデフォルトを設定するインテントフィルターも設定します。Activity2回設定しているため、最初/最後に登録されたものの優先順位の問題が発生します。フィルタを削除するDEFAULTと、ランチャーでクリックしたものをすべて開始できるようになります。

つまり、両方のアクティビティから次の行を削除します。

<category android:name="android.intent.category.DEFAULT" /> 
于 2013-03-20T14:48:24.157 に答える
14

はい、マニフェスト内 に2つ以上のマークを付けて<activity>ください。さらに、開始する正確なパッケージとアクティビティを指定するLauncher-Activitiesの両方に属性を設定する必要があります。LAUNCHERandroid:taskAffinity

<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>
于 2013-03-20T14:48:53.750 に答える