您的位置:首页 > 移动开发 > Android开发

Android应用基础——Activity

2015-01-17 16:43 127 查看
目前小菜鸟一枚,由于翻译未参考国内其他书籍,所以可能还有很多地方有待推敲。目前也并没有想太认真去做这件事,只是简单做一下。所以理解不到位的地方多包涵~

应用

应用由活动、服务、广播接收和内容供应商组成。

应用由不同的部件构成。安卓实例化并按需求运行,每个部件都有自己的用途和API。

1. 活动

用于用户交互的基本类。通常用在用户能够做的单一的、明确的任务。

2. 服务

在后台运行,可以运行长时间的操作,支持远程交互。

3. 广播接收

监听和响应事件的组件。订阅者在publish/subscribe模式下。事件可以用Intent类来表示,然后广播。广播接收者接收并响应广播事件。

4. 内容供应商

通过应用来存储和分享数据。使用基于数据库的交互,解决进程间的通信问题。

5. 地图定位

用户输入地址,应用显示1个包含地址周围区域的地图。

创建安卓应用

1. 定义资源

资源不是源码实体,包括不同的资源类,比如布局(Layout)、字符串(Strings)、图像(Images)、菜单(Menus)以及动画(Animations)。允许应用针对不用的设备和用户定制。

(1)字符串类型

字符串的类型包括字符串、字符串阵列和复数,主要存储在res/values/*.xml中。具体放在xml中,比如:<string name=”hello”>HelloWorld!</string>可以包含格式和样式。也可以被其它资源访问,比如@string/string_name。在Java中可以用R.string.string_name访问。

(2)定制字符串

如果默认语言为Italian,则@string/location_string为“DIGITA L’INDIRIZZO”,否则为“ENTER LOCATION”。

(3)用户布局

UI布局在xml文件里面。有些文件允许可视布局。xml文件默认存放在res/layout/*.xml中。在Java中可以通过R.layout.layout_name访问,也可以被其他资源访问:@layout/layout_name。

(4)使用多层布局文件

可以基于你的设备的方向和屏幕大小等设置不同布局文件。

(5)R.java

在编译时资源可以用来产生R.java类,java代码使用R类访问资源。

2.使用类

通常至少包含1个活动。活动初始代码通常存放在onCreate()函数中。

典型的onCreate()函数的工作流如下:存储保存好的状态;设置内容视图;初始化UI部件;链接UI部件至代码行为。

3. 包应用

系统将应用部件和资源打包进1个apk文件中。开发者在AndroidManifest.xml文件中设置要求的应用信息。

(1)AndroidManifest.xml

文件中包含的信息有:应用名称、组件和其它(要求的权限、应用的特征和最小API等级)。

4. 安装和运行应用

在Eclipse中运行仿真器或设备或者从命令行输入。

在设备上使用USB调试工具:settings->applications->development->USB debugging: %adb install <path_to_apk>。

活动

为用户交互提供视觉接口,每个活动类支持用户能够专注去做的一件事,比如查看邮箱信息或显示登录界面。一个应用通常用若干活动组成。

安卓支持用多种方式在活动类间切换:任务、任务返回栈、闲置或重启活动。

1. 任务

相关活动的集合,这些相关活动不一定包含在同一应用中。大多数任务从主屏幕开始。

2. 任务返回栈

活动被启动时,它被置于返回栈顶端;活动销毁时,它弹出返回栈。

3. 活动周期

创建、暂停活动,应用执行中必要时重启或销毁。某些行为取决于用户的行为,而有些取决于安卓系统本身。比如:安卓在需要资源时可以杀死活动。

(1)活动周期状态

a)重新开始/运行—可见,用于与用户交互;

b)暂停—可见,用户不能够交互,可以中止;

c)停止—不可见,可以中止。

(2)活动周期方式

安卓通过请求具体的活动方式来获得活动周期状态的改变。

(3)一些活动回调方式

OnCreate(BundlesavedInstanceState),onStart(),onResume(),onPause(),onRestart(),onStop(),onDestroy()。

a)onCreate()

当活动创建时被调用。设置初始状态:调用super:onCreate(),设置活动的内容视图,必要时保留对UI访问,必要时配置视图。

b)onRestart()

当活动停止并且将要重新启动时被调用。

c)onStart()

活动将会变成可见的。

d)onResume()

活动可见并将要与用户交互。

e)onPause()

准备切换到另一个活动。

f)onStop()

活动不再对用户可见,但有可能重启。如果安卓杀死应用则不会被调用。

g)onDestroy()

活动即将销毁。

从onCreate()到onDestroy()为整个生命周期,从onStart()到onStop()为用户可见的,从onResume()到onPause()为可见并且在前台运行的程序。

4. 开始活动

创建1个意图对象,指定活动开始。

传递新创建的意图给方法,比如:startActivity(),startActivityForResult()调用回调方法当活动完成并返回结果。

(1)根据联系人定位地图

和地图定位相似,但需要从联系人通讯录中获得地址。

通过调用Activity.setResult()可以设置开始的活动的结果:publicfinal void setResult(int resultCode),public final void setResult(int resultCode,Intent data)。

(2)RESULTCODE(AN INT)

RESULT_CANCELED、RESULT_OK、RESULT_FIRST_USER和用户自定义的RESULTCODE。

5. 解决配置变化

键盘、方向和环境等,可以在运行时改变设备配置。当设备配置改变时,安卓杀死很多当前的活动然后重启。活动重启应该很快:如果有必要你可以:在配置状态改变时保持对象的重要状态信息或手动解决状态配置。

保持对象重要状态:将难计算的数据存储起来加速解决配置变化。

(1)推翻

onRetainNonConfigurationInstance()来建立和返回配置对象,可以在onStop()和onDestroy()之间调用。

(2)恢复

调用在onCreate()中调用getLastNonConfigurationInstance()来恢复保留的对象。

注:这些方式在Fragment类中丢弃。

(3)手动重新配置

可以防止系统重启活动。在androidManifest.xml文件中修改你的活动配置。比如:

<activity android:name=”.MyActivity” android:configChanges=”orientation|screensize|keyboardHidden”…>

当配置改变时,活动类的onConfigurationChanged()方式被调用,传递了一个配置对象,指定新的设备配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: