安卓开发入门笔记#1 初认Activity

时间:2014-09-29 10:30:01   收藏:0   阅读:174

一、Activity基本概念

Activity是安卓开发中的重要组件,它为用户提供了基本的屏幕交互空间。简单来说,我们直观看到的应用可操作界面,其基础就是托管的activity。

一个应用通常由多个activity组成,一个activity可以启动另外一个acitvity,新的activity称为子activity,其父activity将会自动停止,并被压入stack,当子activity返回时,再从stack中弹出父activity。

 

二、Activity的生命周期

安卓官方文档有句话:开发一个强大和灵活的应用程序,实现Activity的回调方法来管理其生命周期尤为重要。

所以,弄清楚Acitvity的整个生命周期,是后期开发复杂应用的基础。

 

1.生命周期的控制

Activity完整的生命周期为从onCreate()到onDestroy()之间的所有过程,如下图:

bubuko.com,布布扣

Activity的生命周期主要由安卓系统托管。开发人员能控制的一般只有start(startActivity())与shut down(finish())Activity。

而其他的onXXX()方法,均是由安卓系统根据不同的外部状况来进行调用,开发人员不能直接参与控制。

也就是说,开发者并不能控制生命周期的转换,但是,我们可以通过回调方法onXXX()来控制应用在各个生命周期的表现。

所以,开发者需要了解:

 

2.生命周期在何时会发生变化 以及 我们能做什么

可见生存期和前台生存期似乎有点让人迷惑,具体是这样的:

activity可能处于三种基本的状态:

Resumed
activity在屏幕的前台并且拥有用户的焦点。(这个状态有时也被叫做“running”。)
Paused
另一个activity在前台并拥有焦点,但是本activity还是可见的。 也就是说,另外一个activity覆盖在本activity的上面,并且那个activity是部分透明的或没有覆盖整个屏幕。 一个paused的activity是完全存活的(Activity 对象仍然保留在内存里,它保持着所有的状态和成员信息,并且保持与window manager的联接),但在系统内存严重不足的情况下它能被杀死。
Stopped
本activity被其它的activity完全遮挡住了(本activity目前在后台)。 一个stopped的activity也仍然是存活的(Activity 对象仍然保留在内存中,它保持着所有的状态和成员信息,但是不再与window manager联接了)。 但是,对于用户而言它已经不再可见了,并且当其它地方需要内存时它将会被杀死。

如果activity被paused或stopped了,则系统可以从内存中删除它,通过请求finish(调用它的 finish() 方法)或者直接杀死它的进程。 当这个activity被再次启动时(在被finish或者kill后),它必须被完全重建。

 

原文:http://www.cnblogs.com/BulletEater/p/3993788.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!