Android开发从入门到精通(7)_2

Intents是什么?

Intents是什么? 第七章(2)

在你开始与拨号盘交互之前,需要你理解你要使用的代码类型。Andriod使用Intent在应用程序中定义工作。一旦你掌握了Intents的使用,一个全新的应用程序开发世界将会向你敞开。本节定义了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 Intent 

Message 

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格式的。

在下一节中,你将开始使用Intent来打开和利用电话的拨号盘。

你可能感兴趣的:(android)