- 24
- 0
- 约1.82万字
- 约 52页
- 2016-04-23 发布于天津
- 举报
组件通信与广播消息
6.1 Intent 6.1.2 获取Activity返回值 SubActivity2.java的核心代码 第10行的setResult()函数仅设置了结果码,第2个参数为null,表示数据不需要传递给父Activity public class SubActivity2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.subactivity2); Button btnReturn = (Button)findViewById(R.id.btn_return); btnReturn.setOnClickListener(new OnClickListener(){ public void onClick(View view){ setResult(RESULT_CANCELED, null); finish(); } }); } } 6.2 Intent过滤器 Intent过滤器 Intent过滤器是一种根据Intent中的动作(Action)、类别(Categorie)和数据(Data)等内容,对适合接收该Intent的组件进行匹配和筛选的机制 Intent过滤器可以匹配数据类型、路径和协议,还包括可以用来确定多个匹配项顺序的优先级(Priority) 应用程序的Activity组件、Service组件和BroadcastReceiver都可以注册Intent过滤器,则这些组件在特定的数据格式上就可以产生相应的动作 6.2 Intent过滤器 注册Intent过滤器 在AndroidManifest.xml文件的各个组件的节点下定义intent-filter节点,然后在intent-filter节点中声明该组件所支持的动作、执行的环境和数据格式等信息 在程序代码中动态地为组件设置Intent过滤器 intent-filter节点支持action标签、category标签和data标签 action标签定义Intent过滤器的“动作” category标签定义Intent过滤器的“类别” data标签定义Intent过滤器的“数据” 6.2 Intent过滤器 注册Intent过滤器 intent-filter节点支持的标签和属性 category标签用来指定Intent过滤器的服务方式,每个Intent过滤器可以定义多个category标签,程序开发人员可使用自定义的类别,或使用Android系统提供的类别 标签 属性 说明 action android:name 指定组件所能响应的动作,用字符串表示,通常使用Java类名和包的完全限定名构成 category android:category 指定以何种方式去服务Intent请求的动作 data Android:host 指定一个有效的主机名 android:mimetype 指定组件能处理的数据类型 android:path 有效的URI路径名 android:port 主机的有效端口号 android:scheme 所需要的特定的协议 6.2 Intent过滤器 注册Intent过滤器 Android系统提供的类别 AndroidManifest.xml文件中的每个组件的intent-filter都被解析成一个Intent过滤器对象。当应用程序安装到Android系统时,所有的组件和Intent过滤器都会注册到Android系统中。这样,Android系统便知道了如何将任意一个Intent请求通过Intent过滤器映射到相应的组件上 值 说明 ALTERNATIVE Intent数据默认动作的一个可替换的执行方法 SELECTED_ALTERNATIVE 和ALTERNATIVE类似,但替换的执行方法不是指定的,而是被解析出来的 BROWSABLE 声明Activity可以由浏览器启动 DEFAULT 为Intent过滤器中定义的数据提供默认动作 HOME 设备启动后显示的第一个Activity LAUNCHER 在应用程序启动时首先被显示 6.2 Intent过滤器 Intent解析 Intent到Intent过滤器的映射过程称为“Intent解析” Intent解析可以在所有的组件中,找到一个可以与请求的Intent达成最佳匹配的Intent过滤器 Intent解析的匹配规则 Android系统把所有应用程序包中的Intent过
原创力文档

文档评论(0)