android的intent使用方法
2011-06-07 21:54
246 查看
1. 说明
Android中提供了Intent机制来协助应用间或者应用程序内部的交互与通讯。
Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道接收者是谁,只是指出接收者的一些特性(比如说启动音乐播放软件)
2. 使用方法
1) 启动服务
a) 关键函数
context.startService()或context.bindService()
b) 示例
Intent i = new Intent(this, MyTestService.class);
this.startService(i); // 启动service
2) 发送广播
a) 关键函数
context.sendBroadcast()
b) 发送方
String msg = “test”;
Intent i = new Intent(“com.test.bc”);
i.pubExtra(“msg”, msg);
this.sendBroadcase(i);
c) 接收方
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);
registerReceiver(mReceiver.interFilter);
3) 启动应用程序
a) 关键函数
context.startActivity()
b) 示例
Intent intent =
new Intent(“com.android.browser“, “com.android.browser.BrowserActivity“);
startActivity(intent);
3. Intent的组成
Intent的参数可多可少,系统根据不同的参数组合过滤出一个或多个适合规则的界面
1) 调用方:以下几个规则可以同时指定,也可以指定一部分或几部分
Component:指定包名类名来调用(见上例),它是晚绑定,不会在编译时报错
Action:指定做什么的规则(比如ACTION_DIAL指定拨号类型应用),以供过滤
Data:提供的重要数据,通常是Uri,同时也提供数据的类型,以供过滤
Type:用于指定类型,以供过滤(比如ACTION_VIEW同时指定为Type为Image,则调出浏览图片的应用)
Category:指定范围
Extras:通过Bundle类传参, 数据多,数据量大时用它传
Flags:标志位(比如FLAG_ACTIVITY_NEW_TASK指定新开一个任务)
2) 被调用方
在AndroidManifest.xml中的<intent-filter>中声明规则
例如: 一般程序都需要在inter-filter中加入android.intent.category.LAUNCHER的声明, 以便被程序启动器(Launcher)识别, 即以点击图标的方式供用户运行
3) 示例
Intent intent = new Intent();
intent.setClassName(“com.android.browser“,
“com.android.browser.BrowserActivity“); // 打开浏览器
Uri data = Uri.parse(“http://www.google.com“);
intent.setData(data); // 打开某网页
intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK); // 以新建任务方式打开
intent.setAction(Intent.ACTION_VIEW); // 以浏览方式打开
startActivity(intent);
4. Intent的源码实现
1) Intent解析,过滤规则对应出具体应用
frameworks/base/core/java/android/content/IntentFilter.java
2) Intent定义,规定程序中的使用的Define与xml中字串的对应关系
frameworks/base/core/java/android/content/Intent.java
Android中提供了Intent机制来协助应用间或者应用程序内部的交互与通讯。
Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道接收者是谁,只是指出接收者的一些特性(比如说启动音乐播放软件)
2. 使用方法
1) 启动服务
a) 关键函数
context.startService()或context.bindService()
b) 示例
Intent i = new Intent(this, MyTestService.class);
this.startService(i); // 启动service
2) 发送广播
a) 关键函数
context.sendBroadcast()
b) 发送方
String msg = “test”;
Intent i = new Intent(“com.test.bc”);
i.pubExtra(“msg”, msg);
this.sendBroadcase(i);
c) 接收方
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);
registerReceiver(mReceiver.interFilter);
3) 启动应用程序
a) 关键函数
context.startActivity()
b) 示例
Intent intent =
new Intent(“com.android.browser“, “com.android.browser.BrowserActivity“);
startActivity(intent);
3. Intent的组成
Intent的参数可多可少,系统根据不同的参数组合过滤出一个或多个适合规则的界面
1) 调用方:以下几个规则可以同时指定,也可以指定一部分或几部分
Component:指定包名类名来调用(见上例),它是晚绑定,不会在编译时报错
Action:指定做什么的规则(比如ACTION_DIAL指定拨号类型应用),以供过滤
Data:提供的重要数据,通常是Uri,同时也提供数据的类型,以供过滤
Type:用于指定类型,以供过滤(比如ACTION_VIEW同时指定为Type为Image,则调出浏览图片的应用)
Category:指定范围
Extras:通过Bundle类传参, 数据多,数据量大时用它传
Flags:标志位(比如FLAG_ACTIVITY_NEW_TASK指定新开一个任务)
2) 被调用方
在AndroidManifest.xml中的<intent-filter>中声明规则
例如: 一般程序都需要在inter-filter中加入android.intent.category.LAUNCHER的声明, 以便被程序启动器(Launcher)识别, 即以点击图标的方式供用户运行
3) 示例
Intent intent = new Intent();
intent.setClassName(“com.android.browser“,
“com.android.browser.BrowserActivity“); // 打开浏览器
Uri data = Uri.parse(“http://www.google.com“);
intent.setData(data); // 打开某网页
intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK); // 以新建任务方式打开
intent.setAction(Intent.ACTION_VIEW); // 以浏览方式打开
startActivity(intent);
4. Intent的源码实现
1) Intent解析,过滤规则对应出具体应用
frameworks/base/core/java/android/content/IntentFilter.java
2) Intent定义,规定程序中的使用的Define与xml中字串的对应关系
frameworks/base/core/java/android/content/Intent.java
相关文章推荐
- Android:Intent介绍 & 使用方法
- android的intent使用方法
- Android Activity中使用Intent实现页面跳转与参数传递的方法
- Android: Intent详细使用方法
- 详解Android中Intent的使用方法
- android的intent使用方法 .
- Android编程开发之打开文件的Intent及使用方法
- Android Intent 使用方法
- android intent使用方法
- android学习:通过Intent打开Activity的两种方法,Intent过滤器的使用方法
- android语音识别方法一:使用intent调用语音识别程序
- android学习记录(五)显式Intent与隐式Intent的功能与使用方法解析。
- android中对Looper、HandlerThread、IntentService的理解及使用方法
- 【Android】Intent介绍及Intent在Activity中的使用方法
- Android 开发中使用Intent传递数据的方法
- android的intent使用方法 .
- Android Intent意图的常用使用方法
- Android中的Intent原理,属性和使用方法
- 【Android应用开发技术:应用组件】Intent使用方法
- android学习序列笔记之Intent使用方法