Android-intent

intent的作用是在各组件中进行交互,在不同组件之间传递数据。

一、Intent基本介绍:

1、Intent 用于封装程序的”调用意图“。两个Activity之间,可以把需要交换的数据封装成Bundle对象,然后使用Intent携带Bundle对象,实现两个Activity之间的数据交换;
2、Intent还是各种应用程序组件之间通信的重要媒介。不管想启动一个Acitivity、Service还是BroadcastReceiver,Android均使用统一的Intent对象来封装这种”启动意图“。很明显使用Intent提供了一致的编程模型;
3、Intent还有一个好处,如果应用程序只是想启动具有某种特征的组件,并不想和某个具体的组件耦合,则可以通过在intent-filter中配置相应的属性进行处理,与stucts2中的MVC框架思路类似。
4、Intent对象大致包括7大属性:ComponentName、 Action 、 Category 、 Data 、Type、 Extra 、Flag。

二、intent的分类:

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

显式intent:

Intent(Context packageContext,Class<?>cls)这个构造函数接受两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动。

Intent intent = new Intent();
ComponentName cName = new ComponentName(MainActivity.this,Main2Activity.class);
intent.setComponent(cName);
startActivity(intent);

实际上,以上的写法会简化成下面这种写法:

 Intent intent=new Intent(MainActivity.this,Main2Activity.class);//显示intent
 startActivity(intent);

隐式Intent

使用隐式Intent,不仅可以启动自己程序内的活动,还可以启动其他程序的活动,这使得Android多个应用程序之间的功能互享成为可能。比如说在活动中打开一个网页,只需要调用系统的浏览器打开网页就可以了。

Intent intent=new Intent(Intent.ACTION_VIEW);
Intent.setData(Uri.parse("www.baidu.com"));
startActivity(intent);

Intent.ACTION_VIEW是安卓系统的内置动作,通过Uri.parse()方法,将一个网址字符串解析成Uri对象,再调用setData()方法将这个Uri对象传递进去。然后呢打开活动就可以看到系统打开了系统浏览器.

三、intent的七大属性:

Intent对象大致包括7大属性:ComponentName、 Action 、 Category 、 Data 、Type、 Extra 、Flags。

  • Action作为标识符,代表一个Intent,当一个Activity需要外部协助处理时,就会发出一个Intent,如果一个程序能完成相应功能,只要在intent-filter加上这个这个intent就可以了。

  • Data保存需要传递的数据格式,比如:tel://

  • Extras保存需要传递的额外数据。

  • Category表示Intent的种类,从android上启动Activity有多种方式,比如 程序列表、桌面图标、点击Home激活的桌面等等,Category则用来标识这些Activity的图标会出现在哪些启动的上下文环境里。

  • ComponentName属性除了可以判断显示隐式,还能实现一个app跳到另外一个app。

Intent intent = new Intent();
   ComponentName cName = new ComponentName(
"com.steven.testasyncloader.sqlitedata","com.steven.testasyncloader.sqlitedata.MainActivity&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值