《Android 4高级编程(第3版)》由Android权威专家编写,涵盖了所有最新的内容,是学习使用Android 4 SDK开发移动应用程序的理想指南。本书见解深刻,帮助经验丰富的Android开发人员充分挖掘Android 4的新特性的潜力,同时讲解了Android开发的基础知识,使初学者也可以借助本书入门。作为一本以实用性为目的的指导图书,本书带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳实践。
本书特色
◆ 深入分析了Android应用程序的组件和生命周期
◆ 探讨了Android的UI原理、设计理念和UI API,使用户界
面在手机、平板电脑和电视上都引人注目
◆ 介绍了创建基于地图的应用程序和使用基于位置的服务
的相关知识
◆ 解释了如何创建后台服务、通知和Cloud to Device Messaging
◆ 演示了如何创建动态的、交互式的主屏幕微件和Live
Wallpaper
◆ 探索了硬件和通信API,包括蓝牙、电话、Wi-Fi Direct、
NFC和Android Beam
◆ 讲解了摄像头和硬件传感器的使用
◆ 详述了新的动画框架和其他增强用户体验的特性,包括
拖放、Action Bar和Fragment
◆ 新增了关于应用程序发布的一章内容
◆ 介绍了License Verification和应用程序内收费服务

本书内容

第1 章简要介绍Android ,包括它是什么,以及它如何适应当前的移动开发。然后详细讲述了Android 作为一个开发平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。第2 章讲述了移动开发的一些最佳实践,并解释了如何下载Android SDK 和开始开发应用程序。该章同时也介绍了Android 开发工具,并说明了如何从头创建新的应用程序。第3~9 章深入探讨了基本的Android 应用程序组件。首先讲述了组成Android 应用程序和它的生命周期的每个部分,然后介绍了应用程序清单和外部资源,以及活动及其生存期与生命周期。
之后将学习如何使用布局、视图和Fragment 创建用户界面,并且还将了解在应用程序组件之间执行动作和发送消息的Intent 和Broadcast Receiver 机制。接着将介绍Internet 资源,之后详细讲述了数据存储、检索和共享。读者在此将了解首选项保存机制、文件处理、数据库和游标。还将学习如何使用内容提供器来共享应用程序数据,以及如何访问原生内容提供器的数据。这一部分最后介绍了如何使用Service 和后台线程在后台工作。
第10 章和第11 章以第4 章介绍的UI 知识为基础,介绍了如何使用操作栏、菜单系统和通知来增强用户体验。在这里将学习如何让应用程序适合各种显示屏(针对多种屏幕尺寸和分辨率进行优化),如何使应用程序更易于访问,以及如何在应用程序内使用语音识别。
第12~18 章涉及较高级的主题。在这里将学习如何使用罗盘、加速计和其他硬件传感器来让应用程序能够对环境做出响应,然后介绍了地图以及基于位置的服务。接着介绍了如何使用动态Widget 、Live Wallpaper 和快速搜索框,使你的应用程序通过主屏幕与用户直接交互。
在介绍了播放和录制多媒体以及使用摄像头以后,你将了解到Android 的通信功能。在介绍了蓝牙、NFC、Wi-Fi Direct 和网络管理(包括Wi-Fi 和移动数据连接)之后,讨论了电话服务和用来发送及接收SMS 消息的API。
第18 章介绍几个高级开发主题,其中包括安全、IPC、Cloud to Device Messaging 、License Verification Library 和Strict Mode 。最后,第19 章介绍了在发布和分发应用程序以及利用应用程序盈利时面临的机会和可以采用的选择,重点讨论了Google Play 。

5.1.1  使用Intent来启动Activity
Intent最常见的用途是绑定应用程序组件,并在应用程序之间进行通信。Intent用来启动Activity,允许创建不同屏幕的一个工作流。

要创建并显示一个Activity,可以调用startActivity,并传递给它一个Intent,如下面的代码所示:
startActivity(myIntent);
startActivity方法会查找并启动一个与Intent最匹配的Activity。
可以构造Intent来显式地指定要打开的Activity类,或者包含一个目标Activity必须执行的动作。在后面一种情况中,运行时将会使用一个称为“Intent解析(intent resolution)”的过程来动态选择Activity。
如果使用startActivity,则在新启动的Activity完成之后,应用程序不会接收到任何通知。要想跟踪来自子Activity的反馈,可以使用本章后面详述的startActivityForResult方法。
1. 显式启动新Activity
在第3章中已经知道了应用程序是由多个相互关联的屏幕——Activity——组成的,它们必须包含在应用程序的manifest文件中。为在它们之间进行过渡,经常需要显式地指定要打开哪个Activity。
要显式地选择要启动的Activity类,可以创建一个新的Intent来指定当前Activity的上下文以及要启动的Activity的类。然后把这个Intent传递给startActivity,如程序清单5-1所示.

在调用startActivity之后,新的Activity(本例中是MyOtherActivity)将会被创建、启动和恢复运行,它会移动到Activity栈的顶部。
调用新Activity的finish或按下设备的返回按钮将关闭该Activity,并把它从栈中移除。或者,开发人员可以通过调用startActivity导航到其他Activity。注意,每次调用startActivity时,会有一个新的Activity添加到栈中,而按下后退按钮(或调用finish)则依次删除每个Activity。
2. 隐式的Intent和运行时迟绑定
隐式的Intent提供了一种机制,可以让匿名的应用程序组件响应动作请求。这意味着可以要求系统启动一个可执行给定动作的Activity,而不必知道需要启动哪个应用程序或Activity。
例如,如果希望让用户从应用程序中打电话,那么可以实现一个新的拨号程序,也可以使用一个隐式的Intent来请求一个在电话号码(表示为一个URI)上执行动作(拨号)。
if (somethingWeird && itDontLookGood) {
  Intent intent =
    new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-2368"));

startActivity(intent);
}
Android会解析这个Intent,并启动一个新的Activity,该Activity会提供对这个电话号码进行拨号的动作——在这种情况中,通常是Phone Dialer。
当构建一个新的隐式的Intent时,需要指定一个要执行的动作,另外,也可以提供执行那个动作需要的数据的URI。还可以通过向Intent添加extra来向目标Activity发送额外的数据。
Extra是一种向Intent附加基本类型值的机制。可以在任何Intent上使用重载后的putExtra方法来附加一个新的名称/值对(NVP),以后在启动的Activity中使用对应的get [type] Extra方法来检索它。
Extra作为一个Bundle对象存储在Intent中,可以使用getExtras方法检索。
当使用这个Intent来启动一个Activity时,Android将在运行时把它解析为最适合在指定的数据类型上执行所需动作的类。这就意味着可以创建使用其他应用程序功能的项目,而不必提前确切知道是哪个应用程序提供了这种功能。
如果多个Activity都能够执行指定的动作,则会向用户呈现各种选项。本章后面将详细介绍,Intent解析过程是通过分析注册的Broadcast Receiver完成的。
许多本地应用程序都提供了能够对特定的数据执行动作的Activity。第三方应用程序(包括你自己的应用程序)也可以通过注册来支持新的动作,或者提供本地动作的替换提供器。本章后面的部分将会介绍一些本地Activity,以及如何注册自己的Activity来支持它们。
3. 确定Intent能否解析
在自己的应用程序中利用第三方应用程序的Activity和Service是十分方便的,但是,你无法保证用户设备上安装了特定的某个应用程序,或者设备上有能够处理你的请求的应用程序。
因此,在调用startActivity之前,确定调用是否可以解析为一个Activity是一种很好的做法。
通过调用Intent的resolveActivity方法,并向该方法传入包管理器,可以对包管理器进行查询,确定是否有Activity能够启动以响应该Intent,如程序清单5-2中所示。
   
免费下载更多试读章节:http://download.csdn.net/detail/qinghuawenkang/5276098

Android 4权威专家撰写,经典作品最新升级版(内附部分章节试读下载地址)相关推荐

  1. java爬虫系列第二讲-爬取最新动作电影《海王》迅雷下载地址

    为什么80%的码农都做不了架构师?>>>    1. 目标 使用webmagic爬取动作电影列表信息 爬取电影**<海王>**详细信息[电影名称.电影迅雷下载地址列表] ...

  2. android文件选择器_支付宝小程序设计规范(内附PSD+Sketch源文件)

    小程序已在我们的生活场景中不断应用,在继微信小程序正式推出后,国内互联网巨头都陆续推出了自家的小程序平台,如:支付宝小程序.百度小程序.抖音小程序.头条小程序等:当然每个平台的小程序都有属于自己的设计 ...

  3. Android 11 Bata 正式发布!闲鱼最新升级版 Flutter 技术电子书开放下载

    点击"开发者技术前线",选择"星标" 在看|星标|留言,  真爱 回复"666",获取一份技术人专属大礼包 Android 11 Bata发 ...

  4. android自动更新demo,Android程序自动更新功能模块的实现方法【附完整demo源码下载】...

    本文实例讲述了Android程序自动更新功能模块的实现方法.分享给大家供大家参考,具体如下: 在程序启动的时候检测服务器上有没有对应版本更新,如果有更新,提示用户是否更新. 在程序启动的时候首先调用更 ...

  5. 【重磅】ArcGIS 10.8手把手经典图文安装教程(附安装包全套装下载,亲测可用)

    ArcMap时代的最后一版软件,未来官方对ArcMap的支持将仅限于提供补丁,更新和新环境支持,换句话说ArcMap10.8.X将会是最终版本,以后不会再有ArcMap10.9了,官方建议所有人在完成 ...

  6. 【最全下载合集】最新Office 2021微软官方原版离线安装下载地址合集

    Office2021下载地址合集 说明:仅支持Win10/11系统,img镜像Win10/11下直接装载打开即可. 一.专业增强版(强烈推荐): http://officecdn.microsoft. ...

  7. Android 毕业设计 - 高仿今日头条新闻客户端(内附源码)

    源码下载地址:https://download.csdn.net/download/gdutxiaoxu/87406704 背景 一直都想尝试开发自己还没接触过的某类APP,以前刚入门的时候,就有一个 ...

  8. echarts地图,需要的省,市,区县的最新的json数据,geoJson数据,下载地址以及可以手动画区域生成json文件,

    echarts需要的市区县的json文件,找了好久,找到了2个地址, 一个自定义区域,可以自己画的, 一个是选择省市区县,会下载的, geoJson和json文件内容一样,后缀可以变更. 可以自定义画 ...

  9. 海洋工作室——网站建设专家:送两个高级可信的IT方面的电子书下载地址给大家【关键是完全免费,无需额外Q币或积分什么的】...

    不说了,直接贴地址: http://www.ppurl.com/2009/08/professional-asp-net-mvc-1-0.html http://www.51cnnet.com/ 转载 ...

最新文章

  1. 2022-2028年中国二次供水设备行业研究及前瞻分析报告
  2. UESTC 1726 整数划分(母函数)
  3. 一个判断session是否过期的小技巧
  4. AVFoundation – AVAssetTrack 获取视频 音频信息
  5. python程序运行结果始终为0_Python:始终运行程序
  6. 纳德拉:微软正计划“终极移动设备”
  7. BScroll warn 】EventEmitter has used unknown event type: “pullingUp“解决方法:看bs文档
  8. 怎样裁剪照片大小尺寸?如何在线编辑图片?
  9. 视频内容理解相关方法
  10. 视频压缩:I帧、P帧、B帧 关键帧
  11. 计算机提示运行错误,每次电脑一开机就会提示脚本运行错误
  12. 15个免费好用的抓包工具
  13. 概率神经网络 PNN
  14. 祛百病祖传秘法转抄的
  15. java 图片互转_JAVA 图片格式转换 jpg、jpeg、png格式互转
  16. SSM框架详细整合教程(Spring+SpringMVC+MyBatis)
  17. 中国农民丰收节交易会暨“日照有礼”功能性特色产品展示
  18. 负载均衡主要应用在哪里?
  19. 华硕灵耀X双屏怎么样?华硕灵耀x2双屏缺点?详细性能评测
  20. 《暮色心迹》开机大吉,在上虞上演一场蓄谋已久的爱情对弈

热门文章

  1. 让两个线程有先后执行顺序
  2. 【多目标追踪算法】Deepsort追踪实战
  3. DM8 工具dmfldr使用
  4. ING集团:完美的IT治理结构 成就世界级金融巨鳄
  5. 我应该是懂居家办公的吧?
  6. win7系统sql找不到服务器,win7系统SQL SERVER2005本地无法连接服务器的解决方法
  7. 西门子PLC用TIA博途连接搜索后,可以搜到,但只有MAC地址,不显示IP地址,无法转至在线怎么办
  8. python的abs(3+4j)_表达式abs(3+4j) 的值为
  9. html的浮动字幕怎么改大小,请问怎么调整字幕字体的大小和特效??
  10. 【TOMVIP邮箱618抢购活动】,注册即送靓号,更多惊喜福利!