Intent的用途
Intent主要有以下几种重要用途:
1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必要的数据。
2. 启动Service:可以将Intent对象传递给startService()方法或bindService()方法以启动一个Service,该Intent对象包含了要启动的Service的信息及其他必要的数据。关于使用startService()方法启动Service,可以参见博文《Android中startService的使用及Service生命周期》。关于使用bindService()方法启动Service,可以参见博文《Android中bindService的使用及Service生命周期》。
3. 发送广播:广播是一种所有App都可以接收的信息。Android系统会发布各种类型的广播,比如发布开机广播或手机充电广播等。我们也可以给其他的App发送广播,可以将Intent对象传递给sendBroadcast()方法或sendOrderedBroadcast()方法或sendStickyBroadcast()方法以发送自定义广播。
此处只讨论启动Activity的用法
Intent的类型
有两种类型的Intent:explicit(显式)的和implict(隐式)的。
显式的Intent:如果Intent中明确包含了要启动的组件的完整类名(包名及类名),那么这个Intent就是explict的,即显式的。
如上图,在建立Intent对象的时候,就已经明确显示要启动的Activity字节码对象。
隐式的Intent:如果Intent没有包含要启动的组件的完整类名,那么这个Intent就是implict的,即隐式的。
如上图,intent设定自己的动作以及类别以及data等信息,通过匹配在AndroidManifest.xml中声明的Activity的intent-filter中的action等信息,去识别自己要启动的activity。
网友评论