为什么引入 Intent Android 应 用程序的四 大组件 Activities Services Content Providers Broadcast Receivers 解决 Android 应用的各项组件之间的通讯 Activity Service Intent Broadcast R

Similar documents
個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

智能移动平台应用开发5 Android组件通信1 Intent

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Service

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

<4D F736F F D20B5DA36D5C220D7E9BCFEBCE4CDA8D0C52E646F6378>

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

RxJava

105 學 年 度 臺 中 市 立 國 民 中 學 藝 術 才 能 舞 蹈 班 學 生 招 生 暨 鑑 定 重 要 程 序 日 程 表 項 目 重 要 日 期 重 要 工 作 事 項 辦 理 單 位 簡 章 公 告 105 年 3 月 簡 章 暨 報 名 表 請 自 行 於 各 承 辦 網 站 下

臺北市立百齡高級中學九十二學年度第一學期代理教師甄選辦法草案

第九屆全國環境保護模範社區優良事蹟.PDF

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Microsoft Word - 桂电教[2008]8号.doc

教育心理学教学案例分析

nb.PDF

(Microsoft Word \256\325\260\310\267|\304\263\260O\277\375_\252k\250\356_.doc)

1.5招募说明书(草案)

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

教案模板4-2

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

Microsoft Word - 第1章 Android基本概念.docx

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

建模与图形思考

F515_CS_Book.book

EJB-Programming-3.PDF

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

untitled

拉卡拉云POS终端收单支付应用组件调用接口说明

1

一、考試宗旨:考選風險管理人才,提升風險管理水準。

實作SQLiteOpenHelper類別

硬件令牌集成方式介绍

教学简报

untitled

台 灣 花 精 溫 暖 的 家 台 灣 花 精 的 家 再 蛻 變 與 花 氣 最 初 的 相 遇 在 祈 光 總 部, 因 為 一 個 入 世 之 夢, 台 灣 花 精 的 家 落 腳 市 中 心 繁 華 巷 弄 裡, 用 花 草 出 世 的 靈 秀 之 氣 迎 接 心 靈 花 友, 始 終 如

谈谈安卓中的Intent注入-neobyte.pptx

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

住户表

09 (File Processes) (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises)

<4D F736F F D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

ShareText

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

Microsoft Word - WANGSHI_No94.doc

A 股 投 资 参 考 日 报 一 每 日 重 点 财 经 要 闻 解 读 中 央 一 号 文 件 : 大 力 推 进 农 业 现 代 化 中 国 证 券 网 讯, 中 央 一 号 文 件 1 月 27 日 由 新 华 社 受 权 发 布 文 件 指 出, 大 力 推 进 农 业 现 代 化, 必

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

untitled

untitled

untitled

某某某某详细报告

某某某某详细报告

km

Microsoft Word 家長意見彙整表ok公告.doc

上海市行政管理学校简介

V01_Draft_ VP3126_98_ TCHN.in :20:26

Microsoft Word - 第3章 Activity.doc

危險物與有害物標示及通識規則

一 本 周 综 述 本 周 首 次 发 布 国 企 改 革 的 地 方 主 要 是 武 汉 市, 其 他 省 市 广 东 上 海 和 合 肥 进 入 国 企 改 革 的 实 施 阶 段 央 企 方 面 本 周 最 大 的 看 点 是 中 国 船 舶 重 工 集 团 和 中 国 航 空 工 业 集 团

題目:

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

乐视云视频发行平台 操作手册 V1.1

2

1 市 场 要 闻 回 顾 : 名 称 收 盘 价 日 涨 跌 幅 上 证 综 指 4, 深 证 成 指 14, 沪 深 300 4, 融 资 余 额 当 日 买 入 额 截 至 周 三 (5 月 6 日 ),A 股 融 资 融 券

1.5招募说明书(草案)

EJB-Programming-4-cn.doc

untitled

RUN_PC連載_10_.doc

Microsoft Word - Functional_Notes_3.90_CN.doc

untitled

胃癌早诊早治技术方案.doc

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii


~ ~

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

untitled

建模与图形思考

清华大学2013年毕业生就业质量报告

1. 2. Flex Adobe 3.

根 据 iwebchoice 对 我 国 母 婴 网 站 月 度 日 均 浏 览 量 PV 排 名 和 月 度 日 均 覆 盖 数 UV 统 计 显 示, 2016 年 2 月 妈 妈 网 月 度 日 均 浏 览 量 页 面 访 问 量 PV 为 页 数 / 百 万 浏 览, 月 度 日

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

Android 编程基础 Android 开发教程 & 笔记 1

01-43_dvp3146K_98_eng1.indd

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数


X713_CS_Book.book

untitled

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

不 知 道 过 了 多 久, 似 乎 是 很 久 很 久 好 痛! 头 痛, 眼 睛 痛, 身 体 的 每 一 处 都 痛, 费 力 的 睁 开 迷 蒙 的 双 眼, 依 浣 尘 看 到 有 一 束 光 向 自 己 袭 来, 真 的 是 闪 电 吗? 被 劈 到 那 可 就 必 死 无 疑 了 啊!

住户表

INTRODUCTION TO COM.DOC

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9CFBBE1B8E5A3A92E646F63>

一, 概 要 说 明 使 用 APKPLUG 应 用 内 工 具 栏 的 目 的 是 能 让 用 户 更 加 快 捷 的 使 用 新 的 功 能 如 支 付 宝 工 具 栏 一 样 APKPLUG 应 用 内 工 具 栏 有 以 下 的 几 个 特 点 : 1. SDK 接 入 简 单 只 需 要

Quantum View SM Manage

Microsoft PowerPoint - L17_Inheritance_v4.pptx

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

Microsoft Word - json入门.doc

Transcription:

移动平台应用软件开发 Intent( 意图 ) 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组北京大学二零一五年

为什么引入 Intent Android 应 用程序的四 大组件 Activities Services Content Providers Broadcast Receivers 解决 Android 应用的各项组件之间的通讯 Activity Service Intent Broadcast Receiver Content Provider

Intent 的工作过程 l Intent 中包含对其他组件的意图描述信息, 如要执 行的动作 涉及的数据等 l Android 根据 Intent 描述, 找到相应的组件, 并将 Inten t 传递给调 用组件, 完成组件的调 用 l Intent 在这 里起到 一个媒介的作 用, 专 门提供组件互相调 用的相关信息 l Intent 对象主要包含 : 组件名称 动作 数据 类别 附加信息和标志位 6 大部分

Intent 的属性及操作方法 组成属性设置属性方法获取属性方法 动作 Action setaction() getaction() 数据 Data setdata() getdata() 分类 Category addcategory() 类型 Type settype() gettype() 组件 Component setcomponent() setclass() setclassname() 扩展信息 Extra putextra() getcomponent() getxxxextra() 获取不同数据类型的数据, 如 int 类型则使用 getintextra(), 字符串则使用 getstringextra() getextras() 获取 Bundle 包

组件名称 ( Component Name) Component 属性明确指定 Intent 的 目标组件的类名称 显式意图 : 如果 Component 这个属性有指定的话, 将直接使 用它指定的组件 隐式意图 : Component 这个属性没有指定 Android 框架会根据 Intents 中包含的其它属性的信息, 比如 action data/type category 进 行查找, 最终找到 一个与之匹配的 目标组件 // 创建 一个 Intent 对象 Intent intent = new Intent(); // 指定 Intent 对象的 目标组件是 Activity2 intent.setclass(activity1.this, Activity2.class);

动作 (Action) 用于描述 Intent 要完成的动作, 对要执 行的动作进 行 一个简要描述 Intent 类定义了 一系列 Action 属性常量, 用来标识 一套标准动作, 如 ACTION_CALL( 打电话 ) ACTION_EDIT( 编辑 ) 等 ACTION_MAIN Android.Intents.action.MAIN, 这个值在每个 AndroidManifest.xml 文档中都可以看到 它标记当前 Activit y 作为 一个程序的 入 口 自 己可以定义 自 己的 Action

Action 属性常量 Action 常量 ACTION_CALL ACTION_ANSWER ACTION_SEND ACTION_SENDTO ACTION_VIEW ACTION_EDIT ACTION_MAIN ACTION_SYNC ACTION_BATTERY_LOW ACTION_HEADSET_PLUG ACTION_SCREEN_ON ACTION_TIMEZONE_CHAN GED 行为描述打电话, 即直接呼叫 Data 中所带电话号码接听来电由用户指定发送方式进行数据发送操作根据不同的 Data 类型, 通过对应的软件发送数据根据不同的 Data 类型, 通过对应的软件显示数据显示可编辑的数据应用程序的入口同步服务器与移动设备之间的数据警告设备电量低插入或者拔出耳机打开移动设备屏幕移动设备时区发生变化 使用组件 ( 分类 ) Activity Broadcast

Data 属性 Data 属性常量 Data 属性 说明 示例 tel:// 号码数据格式, 后跟电话号码 tel://123 mailto:// 邮件数据格式, 后跟邮件收件人地址 mailto://dh@163.com smsto:// 短息数据格式, 后跟短信接收号码 smsto://123 content:// 内容数据格式, 后跟需要读取的内容 content://contacts/people/1 file:// 文件数据格式, 后跟文件路径 file://sdcard/mymusic.mp3 geo://latitude,longitude 经纬数据格式, 在地图上显示经纬度所指定的位置 geo://180,65 Action 和 Data 一般匹配使 用, 不同的 Action 由不同的 Data 数据指定 Action 属性 Data 属性 描述 ACTION_VIEW content://contacts/people/1 显示 _id 为 1 的联系人信息 ACTION_EDIT content://contacts/people/1 编辑 _id 为 1 的联系人信息 ACTION_VIEW tel:123 显示电话为 123 的联系人信息 ACTION_VIEW http://www.google.com 在浏览器中浏览该网页 ACTION_VIEW file:///sdcard/mymusic.mp3 播放 MP3

Intent i=new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel://10086")); startactivity(i); Intent i=new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("content:/ /contacts/people/1")); startactivity(i); Intent i=new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http:/ /www.ss.pku.edu.cn")); startactivity(i);

Extra 属性 Extra 属性 用于添加 一些附加信息, 例如发送 一个邮件, 就可以通过 Extra 属性来添加主题 (subject) 和内容 (body) 通过使 用 Intent 对象的 putextra() 方法来添加附加信息 将 一个 人的姓名附加到 Intent 对象中, 代码如下所 示 Intent intent = new Intent(); intent.putextra("name","zhangsan"); 通过使 用 Intent 对象的 getxxxextra() 方法可以获取附加信息 例如, 将上 面代码存 入 Intent 对象中的 人名获取出来, 因存 入的是字符串, 所以可以使 用 getstringextra() 方法获取数据 String name=intent.getstringextra("name");

Activity 栈 l 某 一个时刻只有 一个 Activity 处在栈顶 l Activity 创建, 压栈, 用户可交互 l Back, 退栈 l Activity 销毁, 退栈 失去焦点 Activity1(Active 状态 ) Activity2(Pause/Stop/Kill 状态 ) Activity3(Pause/Stop/Kill 状态 ) Activity4(Pause/Stop/Kill 状态 ) 重新激活 Activity 的状态与它在栈中的位置关系

Activity 之间使用 Intent

启动 一个新的 Activity, 实现多个 Activity 间的切换定义并实例化 一个 Intent 调 用 startactivity() 方法启动新的 Activity button0=(button)findviewbyid(r.id.button0); button0.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { // TODO Auto-generated method stub Intent intent=new Intent(Activity.this,Other_Activity_Test.class); startactivity(intent); } });

Intent 传递数据 getintent()----- 获取 一个 Intent; putextra()------ 发送 Intent 消息内容 getextra()--- 得到 Intent 消息内容 Intent 发起端 Intent intent = new Intent(Activity.this,OtherActivity.class); intent.putextra( name, zhang ); intent.putextra( age,22); startactivity(intent); Intent 接收端 Intent intent = this.getintent(); String name = intent.getstringextra( name ); int age = intent.getintextra( age,0);

Q&A 本讲结束!