Intent filter 关于Action、Category属性详解---附带实例源码
16lz
2021-01-26
如果一个 Intent 请求在一片数据上执行一个动作, Android 如何知道哪个应用程序(和组件)能用来响应这个请求呢? Intent Filter就是 用来注册 Activity 、 Service 和 Broadcast Receiver 具有能在某种数据上执行一个动作的能力。 使用 Intent Filter ,应用程序组件告诉 Android ,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组件、本地的或第三方的应用程序。 的动作测试。
中没有说明具体的Action类型,那么会出现下面两种情况。 完全匹配时,才会让该 Intent请求通过测试,IntentFilter中多余的声明并不会导致匹配失败。 一个没有指定任何类别测试的 IntentFilter仅仅只会匹配没有设置类别的Intent请求。
为了注册一个应用程序组件为 Intent 处理者,在组件的 manifest 节点添加一个 intent-filter 标签。在 Intent Filter 节点里使用下面的标签(关联属性),你能指定组件支持的动作、种类和数据。
1、动作测试:
规则a.一条
以上
规则b.如果Intent请求的Action和
以下几种Intent请求都可以通过上述请求1:
Intent intent = new Intent("myapp.action.test1");startActivity(intent);
请求2:
Intent intent = new Intent("myapp.action.test2");startActivity(intent);
如果Intent请求或(1) 如果
(2) 反之,如果Intent请求中没有设定Action类型,那么只要
2、类别测试
只有当Intent请求中所有的Category与组件中某一个IntentFilter的以下三种Intent请求都可以通过上述
请求1:
Intent intent = new Intent("myapp.action.test1");intent.addCategory("cate1");startActivity(intent);
请求2: Intent intent = new Intent("myapp.action.test1");intent.addCategory("cate2");startActivity(intent);
请求3:
Intent intent = new Intent("myapp.action.test1"); intent.addCategory("cate1"); intent.addCategory("cate2"); startActivity(intent);
实例部分源码:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
MainActivity.java(核心代码) protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);actionbutton = (Button) findViewById(R.id.ActionButton);categorybutton = (Button) findViewById(R.id.CategoryButton);actionbutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("myapp.action.test1");startActivity(intent);}});categorybutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("myapp.action.test1");intent.addCategory("cate1");intent.addCategory("cate2");startActivity(intent);}});}
特别提醒实例源码(免费): http://download.csdn.net/detail/a13429921973/5720603 更多相关文章
- Android(安卓)RxJava 实际应用讲解:网络请求嵌套回调
- android开发教程(十一)——android应用程序基础
- Android(安卓)内功心法(1.5)——android常用设计模式之命令模式
- 网络编程之——他山之石OkHttp
- Android(安卓)Async HTTP Clients: Volley vs Retrofit
- 第三部分:Android(安卓)应用程序接口指南---第一节:应用程序组件--
- Android官方文档—APP组件(Services)(AIDL)
- android基本组件介绍
- Android(安卓)利用Fiddler进行网络数据抓包