android意图的作用,Android Intent 意图作用

Intent分为两大类:

(1)显性的(Explicit)

(2)隐性的(Implicit)

对于隐性意图,在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的目的.(在模块间的组件启动)

intent定位事件的目的地:

(1)种类(category),比如我们常见的 LAUNCHER_CATEGORY 就是表示这是一类应用程序。

(2)类型(type),在前面的例子中没用过,表示数据的类型,这是隐性Intent定位目标的重要依据。

(3)组件(component),前面的例子中用的是setClass,不过也可以用setComponent来设置intent跳转的前后两个类实例。

(4)附加数据(extras),在ContentURI之外还可以附加一些信息,它是Bundle类型的对象。

对于显性Intent:

//ComponentName comp = new ComponentName(FirstActivity.this, SecondActivity.class);

1 //明确的指定了待启动的组件类, 此时的Intent属于显式intent

2 Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

对于隐性Intent,分几步:

(1) 在清单文件中的application节点下的activity下添加intent-fileter,添加action:

(2)

1 //action

2 private final String studentQueryIntent = "com.sample.student.query.number";3 //data

4 Uri studentNumberUri = Uri.parse("student:12");5 Intent intent = newIntent();6 intent.setAction(studentQueryIntent);7 intent.setData(studentNumberUri);8 startActivity(intent);

Intent intent = new Intent();

intent.setAction("com.sample.student.other");

Uri data = Uri.parse("student://www.student.com:8080");

//intent.setData(data);

intent.setDataAndType(data, "text/*");

startActivity(intent);

其中setData方法:

1 //注:setData、setDataAndType、setType 这三种方法只能单独使用,不可共用。2 //要么单独以 setData 方法设置 URI

3 intent.setData(uri);4 //如何在中多了一个android:mimeType="text/*", 此时不能使用intent.setData, 而要使用intent.setDataAndType();

5 intent.setDataAndType(uri, "text/plain");6 //要么单独以 setDataAndType 方法设置 Type

7 intent.setType("text/plain");

设置了多个data,只要匹配一个就可以启动这个activity。

如果设置了 ,必须完全匹配 Uri data = Uri.parse("student://www.student.com:8080/studentNum");才能启动。

如果 ,那么 Uri data = Uri.parse("student://www.student.com:80"),Uri data = Uri.parse("student://www.student.com:8800"), Uri data = Uri.parse("student://www.student.com") 都可以匹配。

如果只设置了 ,那么 Uri data = Uri.parse("test://") 就可以匹配,后面也可以加其他参数。

如果设置了mimeType,那么必须使用 intent.setDataAndType(data, "text/*"); 启动activity。

对于中的action项可以有多个只要匹配其中一个就可以了。

隐性Intent:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。

原文:http://www.cnblogs.com/CharlesGrant/p/4876039.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值