我正在编写一个SDK,并希望开发人员能够创建一个活动别名,其targetActivity设置为我的SDK内的活动.我这样做是因为我希望他们能够自定义SDK中特定活动的意图过滤器.如果在sdk的清单中有ActivityX,我希望他们能够在他们的应用程序的清单中写下一个这样的活动别名:
<activity-alias android:name="abc" android:targetActivity="ActivityX"> <intent-filter> ... user's custom intent filter </intent-filter> </activity-alias>
我遇到的问题是targetActivity有restriction:
“… must match the name attribute of an activity element that
precedes the alias in the manifest.”
这是一个问题,因为无论我将活动放在sdk的清单中,或者我将别名放在示例应用程序的清单中,别名总是在最终合并清单中的活动之前导致INSTALL_PARSE_Failed_MANIFEST_MALFORMED错误.
一个想法是在ActivityX在sdk清单中声明之后放置一个没有意图过滤器的别名,并希望两个别名将为merged together并保持在sdk别名的位置.但我不知道如何做到这一点.可能不起作用的一个原因是两个别名可能无法冲突.