intent的主要作用:实现不同Activity之间的的跳转以及数据交换,不仅仅适用于Activity还适用于service和BroadCastReciver
intent 分为显式意图 和隐式意图
显式意图:明确出发地和目的地
a、Intent intent = new Intent(from,to);
b、Intent intent = new Intent; intent.setClass(from,to);
c、Intent 的属性
隐式意图:没有明确的目的地,出发地就是当前的Activity
Intent intent=new Intent("action");
七大属性:
1、ComponetName:(组件名)一般在定义意图时使用 显示属性是通过这个完成的
Intent intent=new Intent();//创建空意图
ComponentName component=new ComponentName(MainActivity.this,Second.class);
intent.setComponent(component);
startActivity(intent);
2、action:隐式属性
a、调用自定义的app程序:
Intent intent=new Intent();
//设置action动作
intent.setAction("");//跟Intent——filter里的name相同
StartActivity(intent);
b、调用手机自己的应用:
3、catagroy:
categroy_default:
category_launch;
categroy_home;
通过调用Intent的addCategory(Intent.categroy_default);
同在清单文件中
<intent-filter>
<action android:name="android.intent.action.VIEW"/>//intent.setAction(Intent.ACTION_VIEW)
<categroy android:name="android,intent.categroy.DEFAULT"/>
4'Extra:多个Activity之间数据教皇的时候使用Extra
puExtra(key,value);
5、data
intent.addData()
Intent intent=new Intent();
//设置Action
intent.setAction(Intent.ACTION_VIEW);
//设置要访问的网址
intent.setData(Uri.parser("http://www.baidu.com"));
//启动
startActivity(intent);
打电话: Intent.ACTION_CALL
Intent intent=new Intent();
Uri uri=Uri.parser(“tel://114”);//目的地
intent.setAction(Intent.ACTION_CALL);
发短信: Intent.ACTION_SEND
intent.setAction(Intent.ACTION_SENDTO);
intent.setData(Uri.parser(""sms_12343));
intent.putExtra("sms_body","信息")
startActivity(intent);
6、type:通过intent.setType("")
类型:MIME 符合“abc/xyz”形式 "video/mp4" "video/avi" "video/*"表示视频的所有格式 abc:是大的分类 xyz:是其中的一种分类
Intent intent=new In
intent.setAction(Intent.ACTION_VIEW);tent();
intent.setData(Uri.parse("file:///sdcard/a.mp4"));
intent.setType("video/mp4");//数据的类型
startActivity(intent);
intent.sentType();
7、flags:主要用于设置启动的模式
对应的方法
intent.addflags(值);
值:FLAG_ACTIVITY_CLEAR_TOP:同launchMode中singleTask
FLAG_ACTIVITY_SINGLE_TOP:singleTop
FLAG_ACTIVITY_NEW_TASK:SingleInstance