0

さまざまなパッケージとアクティビティを含むプロジェクトを作成しました。たとえば、次のようにします。

com.example.package1.Activity1
com.example.package2.Activity2

最初のパッケージにはランチャーが含まれています。私のプロジェクト マニフェスト ファイルでは、このアクティビティはホーム インテントをリッスンしています。

        // Launcher
        <activity android:name=".package1.Activity1" android:label="@string/app_name" >
            <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>
        </activity>

        // package2.activity1
        <activity android:name=".package2.activity1" android:label="@string/package2_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

私の問題は、ユーザーがランチャーをクリックHomeしても開かれず、代わりにユーザーが最後に開いたアプリのアクティビティに移動することです。EG: User opens package2.MainActivity from default launcher > goes to another app > clicks home > package2.MainActivity is opened again.

これは正常ですか?Homeデバイスボタンが .package1.activity1になるようにするにはどうすればよいですか?

4

2 に答える 2

1

ホーム画面の代替を作成しようとしている場合、そのアクティビティ<activity>のマニフェストのタグに次のものが必要です。

android:launchMode="singleInstance"

これにより、このアクティビティのインスタンスが 1 つだけ存在し、このアクティビティが他のアクティビティを開始したときに、それらがすべて新しいタスクに入り、ホーム画面の置き換えのタスクの一部にならないことが保証されます。

于 2013-01-07T11:47:50.660 に答える
0

よくわかりませんが、このコードを試してください:

// package2.activity1
    <activity android:name=".package2.activity1" android:label="@string/package2_name" >
        <intent-filter>
            <action android:name="android.intent.action.View" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2013-01-07T05:39:05.017 に答える