我有带有 2 个启动器图标和 2 个不同活动的应用程序。清单文件如下:
....
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MyActivity">
<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=".MySettings"
android:label="@string/settings"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MySettings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
....
我想MyActivity
成为安装后打开的默认屏幕,所以我使用了.category.DEFAULT
.
action.MAIN
并且category.LAUNCHER
将显示两个单独的启动器图标(1 代表MyActivity
,1 代表MySettings
)。
问题:当我打开MyActivity
时,MySettings
屏幕也被打开。我希望每个启动器图标仅打开其相应的活动。我已经使用taskAffinity
每个活动来解决问题,但它没有用。我认为要进行taskAffinity
工作,活动必须以标志开始,Intent.FLAG_ACTIVITY_NEW_TASK
在我的情况下我不能(两者都是启动活动)。
我也尝试过使用android:launchMode="singleTask"
,但也没有用。
如何使每个启动器图标仅打开其 Activity ?
更新:对不起,我意识到MyActivity
没有打开MySettings
,但似乎如此。MyActivity
没有 UI,所以它显示类似于 的空白屏幕MySettings
。taskAffinity
工作正常。我已经添加android:theme="@android:style/Theme.NoDisplay"
到MyActivity
隐藏 UI。