请问:action和category的意思

leetow2006 2019-09-19 10:32:59
我们在使用隐式Intent时,在AndroidManifest.xml文件中,会使用到action和category,
我看书时,说只有action和category中的内容同时匹配Intnet中指定的action和category,
这个活动才能响应。可是我看到创建Intent对象时,只有action匹配,没有看到category.
请问action和category到底是代表什么?以上例子为什么创建Intent只有action参数,
没有category,它们如何匹配?这两个是不是要固定搭配?如果不是,如何搭配?
请看文档:Intent(String action)
Create an intent with a given action.
这里只有action,没有category
...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leetow2006 2019-09-20
  • 打赏
  • 举报
回复
哦,非常感谢!
QY绿鸟 2019-09-19
  • 打赏
  • 举报
回复
android.intent.category.DEFAULT是必须添加的,只要是想接受一个隐式Intent的activity都必须有这句,相当于要想响应intent请求的activity都至少要有android.intent.category.DEFAULT这个默认category,否则就会匹配失败
leetow2006 2019-09-19
  • 打赏
  • 举报
回复
我想在第一个Activity中按一个按钮,去启动第二个Activity,请看:
注册第二个Activity
<activity
android:name=".SecondActivity" >
<intent-filter>
<action android:name="com.example.activitytest.SECONDACTIVITY"/>

<category android:name="com.example.activitytest.SECOND" />

</intent-filter>

</activity>
在第一个活动的按钮中:
Intent intent=new Intent();
intent.setAction("com.example.activitytest.SECONDACTIVITY");
intent.addCategory("com.example.activitytest.SECOND");
startActivity(intent);
可是启动会出错,如果我在注册第二个Activity,添加<category android:name="android.intent.category.DEFAULT" />
就可以,请问一定要添加android.intent.category.DEFAULT吗?如果不添加,如何更改代码?
(action和category是我自己定义的)
亲爱的Joe 2019-09-19
  • 打赏
  • 举报
回复
你看看Intent类,它的构造方法,是重载的,不是只有Intent(action,category)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧