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

《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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值