Intent简介:
intent是一种消息传递机制,可以在应用程序内使用,也可以在应用程序间使用。
可以用来携带数据,启动activity、service、broadCast Receiver.
一、intent常用用法: a、显式地(通过指定要装在的了类名)或者隐式地(通过请求对一条数据执行某个动作),来启动activity.
b、也可以用来在系统范围内广播消息。应用程序可以在manifest文件中,注册一个广播Broadcast Recevier 来监听和响应这些广播Intent.
使用Intent, 启动Activity两种方式:
1、使用StartActivity(),启动子Activity,无法返回数据
1、显示的:Intent intent=new Intent(Myactivity.class,YouActivity.class);
startActivity(intent);
2、隐式的:隐式Intent提供了一种机制,可以让匿名的应用程序组件响应动作请求。
eg:Intent intent=new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:555-2368”));
StartActivity(intent);
隐式Intent发出后,Android回解析这个Intent,并启动一个新的Activity。
当构建一个新的隐式Intent时,需要的条件:
动作(Action)--------Intent.ACTION_DIAL
数据:也可以,提供执行那个动作需要的数据URI
额外数据:Extra
2、 使用StartActivityForResult(),可以返回子Activity的数据
知道了,如何使用Intent来携带数据,发送请求,启动其他组件,Intent即,在某个数据集上,执行动作的请求,接下来看看如何过滤Intent及解析Intent
二、Intent Filter
1、 Android是如何知道,使用那个应用程序来响应这个请求,如果Intent代表了对某个数据集上执行动作的请求,Intent Filter 则声明一个特定的应用程序组件能够对一个类型的数据执行操作。
<Intent-filter>标签中添加:
action:动作
categoty:使用android:name属性指定应用在那种情况下为action提供服务,可以携带多
个
data:data标签允许指定组件可以执行的数据类型
2、Android解析Intent Filter