是否可以在一个<intent-filter>中为Activity注册两个动作

我想注册我的启动程序的活动,所以它可以通过点击图标和自定义scheme打开链接开始。 我设法使它工作,但是质疑是正确的方式。 这是我清单的相关部分:

<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="my.sheme" /> </intent-filter> 

这确实有用,但我想知道是否应该在同一个意向filter下注册这两个操作。 我试着把标签从第二个filter移动到第一个,但是我的活动没有显示安装图标。 是否有可能这样做,我只是犯了一些小的语法错误(或打破了一些无证的声明规则的顺序),或者是我的思想在这方面完全错误,这有什么更深层次的原因呢?

注:我设置android:exported =“true”,但android.intent.action.MAIN工作,即使没有它,因为它成为出口无论如何,如果你使用action.MAIN

  • 只发送广播到特定的活动
  • Android IntentService无法实例化类; 没有空的构造函数
  • Android Chrome自定义选项卡/ Fitbit Web API将不会redirect,如果应用程序已被授权。 (OAuth2.0的)
  • Android:如何在使用LocationManager.requestLocationUpdates()时从intent bundle extras获取位置信息
  • 什么是意图filter准确?
  • Chrome自定义标签和意图filter
  • 注册为音乐播放器
  • 如何正确过滤包替换广播
  • 正如Android文档所述:

    如果要处理多种意图,但仅处理动作,数据和类别types的特定组合,则需要创build多个意向filter。

    否则,您可以将它们组合成一个意图filter。