Android如何让两个带启动图标的Activity在任务列表中独立显示
问题结论
Android完全支持两个Activity在任务管理器中独立共存,你当前遇到的窗口被替换问题,根源是两个Activity默认共享应用的同一任务栈,没有配置独立的任务运行规则。
解决配置方案
只需要在AndroidManifest.xml中给两个Activity分别添加独立的taskAffinity属性,搭配singleTask启动模式即可,修改后的Activity配置代码如下:
<activity android:exported="true" android:name=".MainActivity" android:windowSoftInputMode="adjustResize" <!-- 新增配置 start --> android:taskAffinity="com.example.allpics.task.main" android:launchMode="singleTask" <!-- 新增配置 end --> > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:exported="true" android:name=".GalleryActivity" android:label="Gallery" android:windowSoftInputMode="adjustResize" <!-- 新增配置 start --> android:taskAffinity="com.example.allpics.task.gallery" android:launchMode="singleTask" <!-- 新增配置 end --> > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
补充注意事项
- 两个Activity的
taskAffinity值不能相同,也不能和应用默认的亲和度(即应用包名com.example.allpics)相同,否则还是会复用已有的任务栈 - 如果后续有从其中一个Activity内部跳转另一个的需求,需要给跳转的Intent添加
Intent.FLAG_ACTIVITY_NEW_TASK标记,否则仍然会在当前任务栈中打开目标Activity
内容的提问来源于stack exchange,提问作者Riccoh
相关产品推荐
相关产品推荐

