Android学习笔记之Intent

Android系统从诞生之初就不允许直接访问4大应用程序组件(Activity,Service,Broadcast Receiver和Content Provider),这就需要提供一种机制可以访问这些组件。
Intent对象被应用于4大基本组件中的3个,而Content Provider会采用其他方式访问。例如,对于窗口(Activity)来说,尽管无法直接访问窗口实例,但可以调用startActivity方法显示窗口。为了可以更灵活地控制窗口,以及向窗口传递数据,就需要一种技术来完成这些工作,这就是Intent的核心功能,也就是说Intent对象从本质上来说就相当于一个信使,用于保存和传输数据。
Intent对象可以封装和传递6种信息。

组件名(Component name)
动作(Action)
种类(Category)
数据(Date)
附加信息(Extra)
标志(Flags)

显示和隐式访问窗口
直接指定窗口类的方式呗称为显示访问窗口。
隐式访问窗口不需要指定窗口类的class,而只是指定与窗口绑定的字符串(Action,Category和Data),至于怎么设置Intent要看AndroidManifest.xml文件中是如何声明的。例如:

<activity android:name=".MyActivity">
   <intent-filter>
       <action android:name="android.intent.action.MYACTION"/>
       <category android:name="android.intent.category.DEFAULT"/>
   </intent-filter>
</activity>

隐式调用MyActivity窗口的代码

Intent intent = new Intent("android.intent.action.MYACTION");
startActivity(intent);

跨程序访问窗口
每一个Android应用的唯一标识就Package Name(包名),也就是按到肉的Manifest.xml文件中< manifest>标签的package属性值。只要Package Name相同,就可以认为是同一个应用。
如果用Intent对象指定一个窗口类,除了指定窗口类的class外,还需要指定窗口类所在的应用程序的Context对象(或应用程序的Package Name),所以通过Package Name和Activity Class Name(窗口类名)可以定位当前Android系统中的任意窗口。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值