Android 转:Intents解析?

Android 转:Intents解析?
2009-05-11 15:33
本节定义了Intent是什么和如何使用它。

    一个Intent是Android从一个Activity(活动)传递信息到另外一个活动的方法。你可以认为一个Intent是一个活动间交换的信息。例 如,假定你有一个活动需要来打开一个网页浏览器并且在Android设备上显示一个页面。你的活动应当发送一个“在网页浏览器中打开某页的 Intent(意图)”,就像一个WEB_SEARCH_ACTION的Intent,一个Android Intent解答器。Intent解答器从语法上分析一个活动的列表并且选择最匹配你的Intent的一个。那就是,网页浏览器的活动。Intent解答 器然后传递你的网页到浏览器中并且启动网页浏览器活动。

     Intents被分成两个主要目录

● Activity Action Intents(活动动作意图)Intents用来呼叫应用程序以外的活动。只有一个活动可以处理Intent。例如,对于网页浏览器,你需要打开网页浏览器活动来显示一个页面。

● Broadcast Intents (广播意图)Intents 被送出到多个活动来处理。一个被Android发出的广播意图的例子就是,当前电池的电量。任何活动处理这个意图并适时的反应。——例如,如果电池电量低到一定程度,取消一个活动。

表格 7-1 列出并且描述了通用的,可以使用活动动作意图。正如你注意到的一样,大多数情况下,从Intent名字可以看出这个Intent是做什么的。

Activity Action IntentMessage
ADD_SHORTCUT_ACTION增加一个功能快捷菜单到Android的主屏
ALL_APPS_ACTION列出设备上可用的所有应用程序
ANSWER_ACTION接电话
BUG_REPORT_ACTION打开调试报告活动
CALL_ACTION呼叫一个提供的位置
DELETE_ACTION删除定义的数据
DIAL_ACTION打开拨号活动并且拨打一个定义好的号码
EDIT_ACTION对有权使用的数据提供编辑
EMERGENCY_DIAL_ACTION拨打一个紧急号码
FACTORY_TEST_ACTION回复工厂测试设定
GET_CONTENT_ACTION选择并返回定义的数据
INSERT_ACTION插入一个空的条目
MAIN_ACTION建立一个活动开始点
PICK_ACTION挑选一个条目并且返回一个选择
PICK_ACTIVITY_ACTION挑选一个特定的活动(返回一个类)
RUN_ACTION执行特定的数据
SEARCH_ACTION在系统上启动搜索
SEND_ACTION发送数据给没有定义的接收者
SENDTO_ACTION发送数据到指定的接收者
SETTINGS_ACTION启动系统设定
SYNC_ACTION和外部的源同步手机
VIEW_ACTION (DEFAULT_ACTION)打开一个视图
WALLPAPER_SETTINGS_ACTION显示修改Android墙纸的设定
WEB_SEARCH_ACTION打开谷歌搜索,或者其它定义过的网页

注意

本章中的应用程序会用到列在表7-1中的Intents:
CALL_ACTION 和 DIAL_ACTION。这些Intents使你有进入手机拨号和呼叫的能力。

表格7-2列出并描述了通用的广播意图。当你需要为一个定义的Intent建立一个接受器时,请参考这个表。

Broadcast Intent信息
CALL_FORWARDING_STATE_CHANGED_ACTION电话呼叫转接状态已经改变
CAMERA_BUTTON_ACTION照相机的按钮被按下
CONFIGURATION_CHANGED_ACTION设备配置发生改变
DATA_ACTIVITY_STATE_CHANGED_ACTION设备的数据活动状态改变
DATA_CONNECTION_STATE_CHANGED_ACTION数据连接状态改变
DATE_CHANGED_ACTION手机系统数据改变
FOTA_CANCEL_ACTION取消未决的系统更新下载
FOTA_INSTALL_ACTION升级已经下载必须立即安装(由系统发送)
FOTA_READY_ACTION升级已经下载可以延迟安装(由系统发送)
FOTA_RESTART_ACTION重启一个系统升级下载
FOTA_UPDATE_ACTION开始系统升级下载
GTALK_SERVICES_CONNECTED_ACTION发送当GTALK已经成功建立
GTALK_SERVICES_DISCONNECTED_ACTION发送当GTALK已经断开
MEDIA_BAD_REMOVAL_ACTION发送当一个SD储存卡移开但是从系统中未成功移除
MEDIA_BUTTON_ACTION发送当媒体按钮按下
MEDIA_EJECT_ACTION发送当弹出动作为一个SD储存卡被初始化
MEDIA_MOUNTED_ACTION发送当一个SD储存卡在系统中成功安装
MEDIA_REMOVED_ACTION发送当检测到储存卡移出
MEDIA_SCANNER_FINISHED_ACTION发送当扫描器完成
MEDIA_SHARED_STARTED_ACTION发送当扫描器开始
MEDIA_UNMOUNTED_ACTION发送当SD卡被检测到但是没有被安装
MESSAGE_WAITING_STATE_CHANGED手机“信息等待”状态发生变化
NETWORK_TICKLE_RECEIVED_ACTION一个新网络设备通知被接受
PACKAGE_ADDED_ACTION当一个新的包装被安装在设备上发送
PACKAGE_CHANGE_ACTION发送当现存的包装发生改变
PACKAGE_INSTALL_ACTION一个包装可以被下载和安装
PACKAGE_REMOVED_ACTION一个包装已经被移除
PHONE_INTERFACE_ADDED_ACTION设备的手机界面已经被建立
PHONE_STATE_CHANGED_ACTION设备的手机状态已经改变
PROVIDER_CHANGED_ACTION设备从一个接收者处接收到通知
PROVISIONING_CHECK_ACTION从供给服务中检测最新的设定
SCREEN_OFF_ACTION屏幕被关闭(设备发送)
SCREEN_ON_ACTION屏幕被打开(设备发送)
SERVICE_STATE_CHANGED_ACTION服务状态被改变
SIGNAL_STRENGTH_CHANGED_ACTION信号强度改变

注意

一些广播意图经常被发送,如TIME_TICK_ACTION
和 SIGNAL_STRENGTH_CHANGED_ACTION。使用时请谨慎处理。你不应当试着去同时接受这样的广播。Intent只是大约三分之一。 其实Intent只是做了某些事情,而且它不能自己来做任何事。你需要Intent过滤器和Intent接受其来听,翻译Intents.一个 Intent接收器就像一个Activity的邮箱。Intent接收器被用来允许一个活动来接受定义的Intent。使用前一个网页浏览器的例子,网页 浏览器活动被设定来接受网页浏览器Intent。一个像这样的系统允许不相关的活动来忽略不能处理的Intent。它同时允许需要其它活动辅助的活动利用 这个活动,而不需要知道如何呼叫它。

    有了Intents和Intents接收器,一个活动可以发送一个Intent并且另外一个可以接受。不过,需要一些东西来管理两个活动之间的信息类型。这就是为什么要用Intent过滤器了。

    Intent过滤器被活动用来描述要接受的Intent类型。更重要的是,它们在Intent的内部概括了传递的数据类型。因此,在我们例子的方案中,我 们要网页浏览器来打开网页。Intent过滤器将会陈述数据使用 WEB_SEARCH_ACTION Intent应当是URL格式的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值