我有两个类似的应用程序(一个免费,一个付费)。
一个活动被定义为 exported="false"
<activity
android:name=".MyActivity"
android:exported="false"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.mine" />
</intent-filter>
</activity>
当我从免费应用程序使用适当的隐式意图调用
startActivity
时,会出现活动选择器。我不明白为什么来自付费应用的活动会出现,因为它被设置为
exported="false"
我想我可以添加一个基于URL的意图过滤器,但我的问题是:当文档中写到
为什么另一个应用程序的活动会出现?无论活动是否可以由其他应用程序的组件启动
AbstractActivity
;免费应用程序定义了一个名为.MyActivity
的活动,付费应用程序定义了一个名为.MyProActivty
的活动,两者具有相同的意图过滤器。当继承无法完成时,我通常会认为框架存在错误。 - rds<intent-filter>
的真正作用。它可以与导出活动一起使用,但这不是它最初的目的。它应该是向操作系统和第三方广告您愿意让他们使用的功能。 - CommonsWareIntent
和<intent-filter>
中拥有多个类别。如果我没记错的话,过滤器必须匹配Intent
中的每个类别。 - CommonsWare