android - 如何在一个应用程序中获得多个图标来启动不同的 Activity ?

标签 android android-manifest

我有一个包含两个 Activity 的应用程序,我希望能够在启动器中显示两个图标,每个图标在应用程序中启动各自的 Activity 。

具体来说,我想要一个图标来启动我的主应用程序,而另一个图标来启动我的设置 Activity 。这可能吗?

这是我迄今为止尝试过的:

    <activity android:label="MyApp" android:name=".MyApp">
        <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">
        <intent-filter>
            <action android:name=".Settings"/>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

这会创建两个启动器图标,但它们都运行我的主应用程序,而不是运行我的设置应用程序的第二个图标。我试过只使用启动器类别,但没有得到图标,所以看起来我也需要主要操作。

这是正确的方法还是我应该在 list 中声明两个应用程序?

最佳答案

您需要做的是让您的设置 Activity 在另一个任务中启动。您可以通过指定其任务亲和性来做到这一点。这是通过属性 android:taskAffinity 完成的。默认情况下,所有 Activity 共享相同的任务关联,默认为 list 中指定的主包。在您的设置 Activity 中,您可以指定 android:taskAffinity="your.own.package.SettingsTask" 以让设置 Activity 在其自己的任务中启动。

Extra documentation.

关于android - 如何在一个应用程序中获得多个图标来启动不同的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270409/

相关文章:

android - 从文本左侧的切换按钮绘制拇指和跟踪器

android - 对话框中的样式titleDivider

启用 wifi 且 WifiManager.EXTRA_WIFI_STATE 不可用时,android.net.wifi.STATE_CHANGE 不广播

Android显示没有 list 权限的拨号盘

Android 深度链接省略某些 url

Android list 文件 : App Supports Tablets, 但在市场上标记为 "not compatible"?

android - 如何将 TabActivity 的 Intent 传递给它的子 Activity

android - Android 中的输入验证,声明一个 InputType 就足够了

android:theme ="@android:style/Theme.NoTitleBar.Fullscreen"适用于应用程序级别,但不适用于 Activity 级别。有什么线索吗?

android - 在 Android 中以编程方式生成编辑文本