Android组件之间的信使——Intent

Intent启动不同组件的方法

组件名称方法名称
ActivitystartActivity()、startActivityForResult()
ServicestartService()、bindService()
BroadcastssendBroadcast()、sendOrderedBroadcast()、sendStickyBroadcast()

Intent由以下几个部分组成: 动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)、拓展信息(Extra)。通过这些可以启动其他组件并携带信息。


Intent寻找组件的方法有2种:第一、通过组件名称直接指定;第二、通过IntentFilter过滤指定

Component属性

组件名通过setComponent()、setClass()、setClassName()设置,通过getComponent()获取。


Action属性:指Intent要完成的动作,是一个字符串常量,如ACTION_CALL(打电话)、ACTION_EDIT(编辑数据)

通过setAction来设置属性。getAction获取。我们还可以自定义Action来使用。

需要在清单文件AndroidManifest.xml中指定activity配置intent-filter和category

如:

<activity android:name=".MyActivity">
            <intent-filter>
                <action android:name="com.example.test.MY_ACTION"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
</activity>



调用内置的Action(号码联系人)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("vnd.android.cursor.item/phone");
startActivity(intent);



Intent的Data属性:执行动作的URI和MIME类型,不同的Action有不同的Data数据指定。通常和Action配合使用。


Intent的Category(类别)属性:是执行Action的一个附加信息

如:返回home界面:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);



Intent的Extras属性:添加一些组件的附加信息

Bundle类


—————————————————————————————————————————————————————————————————————————————


启动Activity的标准Aciton
Action常量对应字符串简单说明
ACTION_MAINandroid.intent.action.MAIN应用程序入口
ACTION_VIEW
android.intent.action.VIEW
显示指定数据
ACTION_ATTACH_DATA
android.intent.action.ATTACH_DATA
指定某块数据将被附加到其他地方
ACTION_EDIT
android.intent.action.EDIT
编辑指定数据
ACTION_PICK
android.intent.action.PICK
从列表中选择某项并返回所选的数据
ACTION_CHOOSER
android.intent.action.CHOOSER
显示一个Activity选择器
ACTION_GET_CONTENT
android.intent.action.GET_CONTENT
让用户选择数据,并返回所选数据
ACTION_DIAL
android.intent.action.DIAL
显示拨号面板
ACTION_CALLandroid.intent.action.CALL
直接向指定用户打电话
ACTION_SEND
android.intent.action.SEND
向其他人发送数据
ACTION_SENDTO
android.intent.action.SENDTO
向其他人发送消息
ACTION_ANSWER
android.intent.action.ANSWER
应答电话
ACTION_INSERT
android.intent.action.INSERT
插入数据
ACTION_DELETE
android.intent.action.DELETE
删除数据
ACTION_RUN
android.intent.action.RUN
运行数据
ACTION_SYNC
android.intent.action.SYNC
执行数据同步
ACTION_PICK_ACTIVITY
android.intent.action.PICK_ACTIVITY
用于选择Activity
ACTION_SEARCH
android.intent.action.SEARCH
执行搜索
ACTION_WEB_SEARCH
android.intent.action.WEB_SEARCH
执行Web搜索
ACTION_BATTERY_LOW
android.intent.action.ACTION_BATTERY_LOW电量低
ACTION_MEDIA_BUTTONandroid.intent.action.ACTION_MEDIA_BUTTON按下媒体按钮
ACTION_PACKAGE_ADDEDandroid.intent.action.ACTION_PACKAGE_ADDED添加包
ACTION_PACKAGE_REMOVEDandroid.intent.action.ACTION_PACKAGE_REMOVED删除包
ACTION_FACTORY_TESTandroid.intent.action.FACTORY_TEST工厂测试的入口点
ACTION_BOOT_COMPLETEDandroid.intent.action.BOOT_COMPLETED系统启动完成
ACTION_TIME_CHANGEDandroid.intent.action.ACTION_TIME_CHANGED时间改变
ACITON_DATE_CHANGEDandroid.intent.action.ACTION_DATE_CHANGED日期改变
ACTION_TIMEZONE_CHANGEDandroid.intent.action.ACTION_TIMEZONE_CHANGED时区改变
ACTION_MEDIA_EJECTandroid.intent.action.MEDIA_EJECT用户想要拔出扩展介质后发送广播
ACTION_MEDIA_UNMOUNTEDandroid.intent.action.MEDIA_UNMOUNTED扩展介质存在,还没有被挂载后发送广播
ACTION_MEDIA_MOUNTEDandroid.intent.action.MEDIA_MOUNTED扩展介质被插入,而且已经被挂载后发送广播
ACTION_MEDIA_REMOVEDandroid.intent.action.MEDIA_REMOVED扩展介质被移除后发送广播
ACTION_MEDIA_SCREEN_OFFandroid.intent.action.MEDIA_SCREEN_OFF关闭屏幕后发送广播
ACTION_MEDIA_SCREEN_ONandroid.intent.action.MEDIA_SCREEN_ON打开屏幕后发送广播

  • 其中用于启动Activity的标准Category及对应的字符串如下表所示:

启动Activity的标准Category
Category常量对应字符串简单说明
CATEGORY_DEFAULTandroid.intent.category.DEFAULT默认的Category
CATEGORY_BROWSABLE
android.intent.category.BROWSABLE
指定该Activity能被浏览器安全调用
CATEGORY_TAB
android.intent.category.TAB
指定该Activity作为TabActivity的Tab页
CATEGORY_LAUNCHER
android.intent.category.LAUNCHER
Activity显示顶级程序列表中
CATEGORY_INFO
android.intent.category.INFO
用于提供包信息
CATEGORY_HOME
android.intent.category.HOME
设置该Activity随系统启动而运行
CATEGORY_PREFERENCE
android.intent.category.PREFERENCE
该Activity是参数面板
CATEGORY_TEST
android.intent.category.TEST
该Activity是一个测试
CATEGORY_CAR_DOCK
android.intent.category.CAR_DOCK
指定手机被插入汽车底座(硬件)时运行该Activity
CATEGORY_DESK_DOCK
android.intent.category.DESK_DOCK
指定手机被插入桌面底座(硬件)时运行该Activity
CATEGORY_CAR_MODE             
android.intent.category.CAR_MODE
设置该Activity可在车载环境下使用














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值