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"

这将确保该活动只存在一个实例,并且当该活动启动其他活动时,它们都将进入新任务,而不是主屏幕替换任务的一部分。

于 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 回答