Intent代表了启动某个程序组件的“意图”,实际上Intent对象不仅可以启动本应用内程序组件,也可启动Android系统的其他应用的程序组件,包括系统自带的程序组件——只要权限允许。 实际上Android内部提供了大量标准Action、Category常量,其中用于启动Activity的标准Action常量及对应的字符串如表5.2所示。 表5.2 启动Activity的标准ActionAction常量对应字符串简单说明ACTION_MAINandroid.intent.action.MAIN应用程序入口ACTION_VIEWandroid.intent.action.VIEW显示指定... Read More
Intent的Action、Category属性都是一个普通的字符串,其中Action代表该Intent所要完成的一个抽象“动作”,而Category则用于为Action增加额外的附加列别的信息。通常Action属性会与Category属性结合使用。 Action要完成的只是一个抽象的动作,这个动作具体由哪个组件(或许是Activity,或许是BroadcastReceiver)来完成,Action这个字符串并不管。比如Android提供的标准Action:Intent.ACTION_VIEW,它只表示一个抽象的查看操作,但具体查看什么、启动哪个Activity来查看,Intent.... Read More
Intent的Component属性需要接受一个ComponentName对象,ComponentName对象包含如下几个构造器。ComponentName(String pkg,String cls):创建pkg所在包下的cls类所对应的组件。ComponentName(Context pkg,String cls):创建pkg所对应的包下的cls类所对应的组件。ComponentName(Context pkg,Class cls):创建pkg所对应的包下的cls类所对应的组件。 上面构造器的本质就是一个,这说明创建一个ComponentName需要制定包名和类名——这就可唯一地确定... Read More
Android的应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用一致的方式来启动它们——都是依靠Intent来启动的,Intent就封装了程序想要启动程序的意图,不仅如此,Intent还可用于与被启动组件交换信息。 下图展示了使用Intent启动不同组件的方法。组件类型启动方法ActivitystartActivity(Intent intent)startActivity(Intent intent,int requestCode)ServiceComponentName startService(Intent service... Read More