Android SDK Document 框架导读的翻译和注解[6]
- 博客分类:
- 技术杂绘
Activating components: intents【组件激活】
这里提到的Intent,类似于Content Provider,也是用户消息传递的, 但两者存在区别:
当一个从ContentResolver的请求的目标是Content Provider时,这个content Provider被激活。 前面提到的其他三种组件(Activity,Service, broadcast receiver)是通过被称为Intent的异步消息被激活的。
Intent对象持有异步消息, 对于Activity, 除了其他事情,Intent特别指定需要激活的Activity名称;对于Service,除了其他事情,Intent特别指定需要操作数据的URI。例 如,传递一个请求,让一个Activity为用户呈现一个图片,或者让用户编辑某个文本。 对于broadcast receiver而言, Intent对象指定需要通知的action名称。比如当相机的按钮按下去后,可以通知应用程序中,对此有兴趣组件。
激活不同的组件,存在不同的方法:
Activity: Activity 的启动时通过传递一个intent对象到Context.startActivity() 或者 Activity.startActivityForResult(). 这样,响应的Activity就启动了,响应的Activity 可以通过getIntent()方法查看让它启动的Intent中的内容。 响应的Activity 调用onNewIntent()方法,传递就可以获取传递过来的Intent。
前一个Activity经常启动下一个Activity, 如果前一个Activity需要下一个Activity的结果,则前一个Activity可以调用startActivityForResult() 而不是调用startActivity(). 例如, 如果启动了一个Activity,让用户选择一个图片。则可以返回选择的这幅图片。前一个Activity通过调用方法 onActivityResult()方法,从Intent对象中获得返回结果。
Service:Service的启动是通过传递一个Intent对象到Context.startService()中,Android调用Service的onStart()方法,传递这个对象。同样地,Intent对象可以传递给Context.bindService(),从而确定发起调用的组件和目标Service之间,即将确立的通信。 Service通过调用onBind()方法,接收Intent对象。(如果Service还未启动,bindService可以选择启动 Service). 比如某个Activity确定和音乐播放的Service关联,这样这个Activity就可以为用户提供一个UI去控制播放。这个Activity可以 调用bindService()建立这个连接, 然后service中定义的方法,从而控制播放。
后续章节中, Remote procedure calls,将提到更多关于bind service的细节。
broadcast: 应用启动一个broadcast, 可以通过传递intent给这些方法,如Context.sendBroadcast(), Context.sendOrderedBroadcast(), Context.sendStickyBroadcast()以及这些方法的变种。Android传递这些Intent给所有感兴趣的broadcast receiver, 是通过调用broadcast 的onReceiver()方法。
更多Intent的信息,请查看独立的章节Intents and Intent Filters
发表评论
-
多字符集(ANSI)和UNICODE及字符串处理方式准则
2012-07-06 09:52 732在我们编写程序的时候,使用最多的是字符串的处理,而ANSI ... -
Java 正则表达式
2012-07-06 09:46 530基本符号 . 表示任意一个字符 \s ... -
flash特效原理:标签云
2012-07-02 12:59 697其实标签云是一个比较常见的特效类,在wondefl里 ... -
Flash:Flash Player 安全性 全屏模式安全性(闷)
2012-07-02 12:59 1008Flash 嵌入HTML后全屏 ... -
ColorPicker 实例
2012-07-02 12:59 570flex/spark" xmlns:mx=&q ... -
As做缩略图
2012-07-02 12:59 532解决方案:使用内置的一个叫做ImageSnapShot的类 ... -
ItemRender---之使用ClassFactory生成渲染器
2012-07-02 12:59 623问题 你想在运行时修改List或DataGridCo ... -
PHP作为Flex程序的数据源
2012-07-01 10:32 562Adobe Flash Builder 4 简体中文正式版 ... -
FLEX之对象拷贝
2012-07-01 10:32 6231.如何使用ByteArray实现对Object执行复制: ... -
Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
2012-07-01 10:32 572BlazeDS Test Drive里面 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-07-01 10:32 597Flex and Java application ... -
菜鸟系列之一:在ubuntu linux下搭建android开发
2012-07-01 10:32 771(说明:在ubuntu liunx ... -
flex 绑定资源
2012-06-30 16:56 702flex 绑定资源 2011年05月15日 Adobe ... -
flex之旅(二)
2012-06-30 16:56 472flex之旅(二) 2010年11月04日 第一章:旅途 ... -
flex之旅 (一)
2012-06-30 16:56 303flex之旅 (一) 2010年11月02日 前言:不为 ... -
创建flex组件
2012-06-30 16:56 502创建flex组件 2010年08月25日 现在,考虑一下 ...
相关推荐
Android SDK (SDK Platforms)-android-25.zip
Android SDK离线包合集(Android 4.0-5.0)。不用去Google下载,直接国内下载离线包,各版本文件独立,任意下载。手机流量上传了一部分,好心疼。如不能下载,请告诉我更新地址。 附上简单教程。 这是Android开发所...
Android SDK (SDK Platforms)-android-28.zip
Android SDK (SDK Platforms)-android-30.zip
Android SDK (SDK Platforms)-android-31.zip
Android SDK (SDK Platforms)-android-32.zip
Android SDK (SDK Platforms)-android-34.zip
Android SDK (SDK Platforms)-android-29.zip
Android SDK (SDK Platforms)-android-24.zip
Android SDK (SDK Platforms)-android-27.zip
Android SDK (SDK Platforms)-android-26.zip
Android SDK (SDK Platforms)-android-19.zip
包含用于构建 Android 应用所需的所有工具。帮助打包Android打包 android sdk27版本,对应android8.1.0,复制到sdk\platforms文件夹下 便可直接使用
Android SDK (SDK Platforms)-android-21.zip
android sdk sources sample目录,解压至sdk目录即可
Android sdk 在首次安装好后 要用SDK Manager.exe进行更新,因服务器在国外,下载经常断开及下载非常慢 上面我把SDK的更新所需要各文件下载地址提供出来,用下载工具下载后即可使用,上面已更新到2014年2月6日 第一...
Android SDK (SDK Platforms)-android-33-ext4.zip
天地图 Android SDK v3.01,包含jar包和libs
Documentation for Android SDK(API 19) Android SDK 官方使用说明文档,对应Android 4.4.2 开发库。 由Android SDK manager下载得到,因官网时常被墙,小伙伴们且用且珍惜。 系列文件共分4个压缩文件: ...
Android SDK NDK API 对应关系