android开发学习之路(1)---- activity及intent基本详解(2)

Intent:android中连接各大组件通信的桥梁。

Intent有setClass、setClassName等方法,看类名就知道,设置一个指定的类,而这个类,就是目标类。

< intent-filter>在AndroidManifest.xml中配置,写在<activity>中,可以配置的属性如下:

1.<action android:name="xxx">指定该activity会响应setAction为xxx字符串的Intent

2.<category android:name="xxxx">指定该activity会响应addCategory为xxxx字符串的Intent

因为在AndroidManifest.xml中,activity指定的类是不能重复的,所以如果通过setClass和setClassName来启动一个Intent,那么程序的目标很明确,会直接跳到对应的activity

但action和category是可以重复的,也就是我activity1和activity2都配置了一样的action或者category的值,那么调用startActivity的时候就会出现一个选择框让你启动activity1或activity2来响应此次请求

例如在android中,本身系统就定义了很多action和category,例如

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
startActivity(intent);

你会发现,会出现一大串的列表,没错,里面几乎是你手机上所以装的应用了,因为几乎每个程序都会有个

<action android:name="android.intent.action.MAIN" />,因为这是程序的入口。

3.Data属性:一般用于向action提供操作的数据,Data接收一个Uri对象

4.Type属性:指定Data属性若指定的Uri对应的MIME类型

Data属性和Type属性会相互覆盖,如果先setData后setType,则前面的setData是相当与无效的,反之先setType,则setType是无效的,如果想同时有效,可以调用setDataAndType方法。


你可能感兴趣的:(Android开发,Intent属性解析)