我已将现有应用程序提取到库项目中,因此可以构建多个目标。应用程序使用动作名称而不是显式的类名称连接在一起。每个目标显然都有自己的 AndroidManifest.xml 文件,其中动作名称映射到类名称。
不幸的是,当同一设备上有两个这样的构建目标时,执行一个操作意味着提示用户是使用 App A 还是 App B 完成该操作。
我怎样才能阻止这种情况发生?我尝试将活动定义导出属性设置为 false。这似乎没有帮助。
我想我可以用包前缀限定 action android:name 属性,但这感觉不对。当然有一种方法可以限制它,以便只解析当前应用程序中定义的操作,或者更确切地说,给定名称的操作不会暴露在应用程序之外?
<activity android:exported="false"
android:name="uk.myco.activities.EditChildFieldsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="EditChildFields" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>