四大组件

Intent 的七大属性

2019-08-06  本文已影响3人  西小瓜

1.七大属性:
Action,Category,Data,Extra,Type,Flag, ComponentName

2.分类:

3.详细说明:

(1)Action: 代表系统要执行的动作
系统提供如下常用的Action属性:

(2)category: 指定动作Action被执行的环境
系统提供如下常用的Category属性

注:

使用ACTION_MAIN打开系统应用时,可以配合下面的Category使用

获取方法:

Set<String> set = intent.getCategories();

(3)data: 通常用于向Action属性提供操作的数据, 是一个Uri对象,本质上是个字符串,常用值如下:

(4)Extra: 保存需要传递的额外数据

(5)Type: 用于指定Data所指定的Uri对应的MIME类型

(6) Intent可调用addFlags()方法来为Intent添加控制标记。即设置启动模式:

可设置的属性部分如下:

注:intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK):表示通过intent开启一个activity,并将这个activity放至栈底或者清空栈后再把这个activity压进栈去。

例:

// 显示主界面(桌面)
Intent intent = new Intent();

intent.setAction(Intent.ACTION_MAIN); // 应用程序的入口

intent.addCategory(Intent.CATEGORY_HOME); // 桌面的应用程序

startActivity(intent); 
// 拨打电话114 (设置data为Uri格式的数据)

Intent intent = new Intent();

intent.setAction(Intent.ACTION_DIAL);

intent.setData(Uri.parse("tel://114"));

startActivity(intent);
// 发送短信给10086 (设置data为Uri格式的数据)

Intent intent = new Intent();

intent.setAction(Intent.ACTION_SENDTO);

intent.setData(Uri.parse("smsto://10086"));

startActivity(intent);
// 查看网页 (设置data为Uri格式的数据)

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.baidu.com"));

startActivity(intent);

(7)componentName: 指定了ComponentName属性的Intent已经明确了它将要启动哪个组件,因此这种Intent被称为显式Intent,没有指定ComponentName属性的Intent被称为隐式Intent。隐式Intent没有明确要启动哪个组件,应用会根据Intent指定的规则去启动符合条件的组件。


intent.setComponent(cName);

startActivity(intent);

//简化为

Intent intent = new Intent(MainActivity.this,NextActivity.class);

startActivity(intent);

也就是说,平时我们最常用的Intent页面跳转的写法就调用的是显式Intent

上一篇下一篇

猜你喜欢

热点阅读