0

我正在 Eclipse 上开发一个 android 启动器,该包包含 MainActivity,它是启动器本身和 SettingsActivity。

我的问题是,如果我打开设置页面,转到其他地方,然后单击主页按钮,我会进入设置页面(而不是直接进入 MainActivity),就像它记得我已经打开了设置一样。

这是 AndroidManifest.xml 文件的摘录:

<!-- Launcher-->
<activity
    android:name=".launcher.MainActivity"
    android:exported="false"
    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>
<!-- Settings -->
<activity
    android:name=".launcher.SettingsActivity"
    android:label="@string/launcher_settings_name"
    android:theme="@style/android:Theme.DeviceDefault" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

您可以看到 Launcher 响应 home 意图,而 SettingsActivity 响应来自启动器的自己的意图。

无论应用程序的最后一个活动是否是设置,我如何确保主页意图将用户直接带到启动器?

4

2 回答 2

3

这是因为您已将设置活动设置为启动器。

试试这个,

<!-- Launcher-->
<activity
    android:name=".launcher.MainActivity"
    android:exported="false"
    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" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Settings -->
<activity
    android:name=".launcher.SettingsActivity"
    android:label="@string/launcher_settings_name"
    android:theme="@style/android:Theme.DeviceDefault" >
 <intent-filter>
    <action android:name="android.intent.action.MAIN" />
  </intent-filter>
</activity>
于 2013-01-06T02:51:34.893 回答
0

我在另一个问题上得到了解决方案:

使家庭意图带入特定的应用程序活动?

--

如果您尝试创建主屏幕替换,则该活动需要在清单中的标记中包含以下内容:

android:launchMode="singleInstance"

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

于 2013-01-08T03:47:27.860 回答