Android基础——Activity生命周期以及观察者模式应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android系统架构

Android目录结构

1.src目录

src目录中存放的是该项目的源代码,其内部结构会根据用户所声明的包自动组织,该

目录的组织方式为src/com/jiang/Main.java,程序员在项目开发过程中,大部分时间是对该目录下的源代码文件进行编写。

2.gen目录

该目录的文件是ADT自动生成的,并不需要人为地去修改,实际上该目录下只定义了一个R.java文件,该文件相当于项目的字典,项目中用户界面、字符串、图片、声音等资源都会在该类中创建其唯一的ID,当项目中使用这些资源时,会通过该类得到资源的引用。

3.Android2.2

该目录中存放的是该项目支持的JAR包,同时还包含项目打包时需要的META-INF目录。

4.assets目录

该目录用于存放项目相关的资源文件,例如文本文件等,在程序中可以使用”getResources.getAssets().open(“text.txt”)”得到资源文件的输入流InputStream对象。

5.res目录

该目录用于存放应用程序中经常使用的资源文件,包括图片、声音、布局文件及参数描述文件等,包括多个目录,其中以drawable开头的三个文件夹用于存储.png、.9.png、.jpg 等图片资源。layout文件夹存放的是应用程序的布局文件。raw用于存放应用程序所用到的声音等资源。value存放的则是所有XML格式的资源描述文件,例如字符串资源的描述文件strings.xml、样式的描述文件style.xml、颜色描述文件colors.xml、尺寸描述文件dimens.xml,以及数组描述文件arrays.xml等。

6.AndroidManifest.xml文件

该文件为应用程序定义了全局的配置信息。这个文件列出了应用程序所提供的功能,包括四大组件、版本、权限等等。在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。

android:versionCode是给设备程序识别版本(升级)。

android:versionName是给用户看的。

7.default.properties文件

该文件为项目的配置文件,不需要认为改动,系统会自动为其进行管理,其中主要描述了该项目的版本等信息。

Activity生命周期

Activity简介

Activity是应用程序的表示层,一个活动通常就是一个单独的屏幕。应用程序中的每个屏幕显示都通过继承和扩展类Activity来实现。Activity利用View来实现应用程序的GUI,而我们的手机用户则直接通过GUI和应用程序做交互,如应用程序通过GUI向用户显示信息,用户通过GUI向应用程序发出指令和响应。

Activity生命周期

Back 键与Home键

back键默认行为是finish处于前台的Activity的即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用onSaveInstanceState方法)。

Home键默认是stop前台的Activity即状态为onStop为止而不是Destroy,若再次启动它,会调用onSaveInstanceState方法,保持上次Activity的状态则是从OnRestart开始的---->onStart()--->onResume()。

关于onSaveInstanceState

是在Activity即将被销毁时调用,(按home或者Ac跳转会调用,在onPause()前)

注意:如果在B的整个生命周期里A的用户界面状态都没有被破坏的话,系统是不会调用a ctivity A的onSaveInstanceState(Bundle)的。

Activity通过Activity栈方式管理

Activity是Android程序的表现层。程序的每一个显示屏幕就是一个Activity。正在运行的Activity处在栈的最顶端,它是运行状态的。

当有新的Activity进入屏幕最上端时,原来的Activity就会被压入第二层。如果他的屏幕没有被完全遮盖,那么他处于Paused状态,如果他被遮盖那么处于Stop状态。

不管处于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时栈底的程序最先被关闭。

进程释放优先级

①前台进程:

正在前台运行的进程,说明用户当前正通过该进程与系统进行交互,所以该进程为最重要的进程②可视进程:

一般还是显示在屏幕上,但是用户并没有直接与之进行交互

③服务进程:

拥有Service的进程,该进程一般是在后台为用户服务。

④后台进程:

包含一个不可视的Activity,缺少该进程并不会影响用户对系统的体验。

⑤空进程

机制服务的

观察者模式在Android 中的应用 观察者模式

观察者模式是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。 实现过程:“注册——通知——撤销注册”

1、观察者

(Observer )将自己注册到被观察对象(Subject )中,被观察对象将观察者存放在一个容器(Container )里。

2、被观察对象

被观察对象发生了某种变化,从容器中得到所有注册过的观察者,将变化通知观察者。

3、撤销观察

观察者告诉被观察者要撤销观察,被观察者从容器中将观察者去除。

观察者将自己注册到被观察者的容器中时,被观察者不应该过问观察者的具体类型,而是应该使用观察者的接口。这样的优点是:假定程序中还有别的观察者,那么只要这个观察者也是相同的接口实现即可。一个被观察者可以对应多个观察者,当被观察者发生变化的时候,他可以将消息一一通知给所有的观察者。基于接口,而不是具体的实现——这一点为程序提供了更大的灵活性。

Android 事件处理

A .

1. 为

B.

2. 件监听器

C

3. 当监听器对象接收到事件对象之后,系统会调用监听器中相应的事件处理方法来处理事

件并作出相应。 示例代码:

相关文档
最新文档