[Android]任务列表中有两个相机图标
现象:
修改AndroidManifest.xml
<activityandroid:name="com.android.camera.PermissionsActivity"android:label="@string/app_name"android:launchMode="singleTop"android:configChanges="orientation|screenSize|keyboardHidden"android:parentActivityName="com.android.camera.CameraActivity"android:taskAffinity="com.android.camera.CameraActivity"android:visibleToInstantApps="true"android:exported="true"><intent-filter><action android:name="android.media.action.VIDEO_CAMERA" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.VOICE" /></intent-filter><intent-filter><action android:name="android.media.action.VIDEO_CAPTURE" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.VOICE" /></intent-filter><intent-filter><action android:name="android.media.action.IMAGE_CAPTURE" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.VOICE" /></intent-filter><intent-filter><action android:name="android.media.action.STILL_IMAGE_CAMERA" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.VOICE" /></intent-filter><intent-filter><action android:name="android.media.action.TOF_CAMERA" /><category android:name="android.intent.category.DEFAULT" /></intent-filter><meta-dataandroid:name="android.support.PARENT_ACTIVITY"android:value="com.android.camera.CameraActivity" />
</activity>
在 Android 中,android:taskAffinity
是一个重要的 Activity 属性,它定义了 Activity 所属的任务栈(Task)
表示这个 PermissionsActivity
会与 CameraActivity
共享同一个任务栈。以下是关键解析和注意事项:
. 作用解析
- 任务栈关联:强制
PermissionsActivity
和CameraActivity
在同一个任务栈中 - 典型场景:用于权限请求等附属界面,确保返回时能回到主 Activity
- 行为表现:
- 如果
CameraActivity
已存在任务栈中,PermissionsActivity
会加入该栈 - 如果不存在,会新建以
com.android.camera.CameraActivity
为标识的任务栈
- 如果