android的intent使用方法

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

5. 参考
http://zhubin215130.javaeye.com/blog/614913

更多相关文章

  1. Android原生代码调用H5 Web网页中的Javascript函数方法
  2. 在Android上调用OpenCV 2.4.10库函数
  3. android 资源ID规则
  4. android 资源文件命名规则 drawable mipmap一样的
  5. Android Button控件 的简单使用(button监听和onClick触发函数使用
  6. Android 广播接收者(具体例子)
  7. Android 两个Activity切换时回调函数调用顺序
  8. 关于Android中drawable必知的一些规则

随机推荐

  1. Android桌面小部件AppWidget开发
  2. [Android(安卓)Studio] Android(安卓)Stu
  3. Android(安卓)的线程和线程池
  4. Android(安卓)如何使Android应用程序获取
  5. 详解android:scaleType属性
  6. Android(安卓)Lottie动画的简单使用
  7. Android知识梳理之自定义View
  8. 【Android】Macbook Pro 10.14(macOS Moja
  9. Cocos2d-x NDK ANDROID VS2010
  10. android如何配置基本环境