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

Android Activity初学,经验分享与基础知识,

2017-02-20 15:37 190 查看
粗略的讲一讲什么是Activity,在我理解,就是呈现给用户的每一个界面都是Activity,其主要用于与用户进行交互,自己的应用也是通过Activity给予用户最直观的体验。

1.什么是返回栈:

返回栈就是一个用于存储Activity的栈,每当你启动一个新的Activity的时候,旧的Activity就会被覆盖,然后你按下Back键的时候,旧的Activity又会弹出来,这就是一个栈的原理,新的Activity位于栈顶,旧的就在栈顶下。以此类推,每当你创建一个新的Activity的时候,就会入栈,Back或者Finish一个Activity的时候,就会弹栈。



2.Activity的活动状态:

(1):运行状态

当一个活动位于返回栈顶位置时候,这时候这个活动就处于运行状态。(2):暂停状态:

当一个活动不在处于返回栈顶时,但仍然可见,没有被完全覆盖,那么这个活动就进入了暂停状态。当内存极低的情况下,可能会被回收。

(3):停止状态:

当一个活动不处于栈顶,切完全不可见的时候就会处于停止状态,系统虽然会保存当前的数据和成员变量。但是当内存在别的地方被需要的时候,会回收停止状态活动。当前数据和成员变量也会被清除。

(4):销毁状态:

当一个活动从返回栈被清除的时候就会成为销毁状态,系统会最倾向于回收这类活动来保存手机内存充足。

3.活动的生存期:

onCreate:当活动第一次被创建的时候调用

onStart:当活动由不可见变为可见的时候调用

onResume:当活动准备好和用户交互的时候调用,此时活动一定会处于栈顶。

onPasue:当系统准备去启动或者回复另一个活动的时候调用.

onStop:当活动完全不可见的时候调用

onDestory:当活动被摧毁前调用

onRestrat:当活动由停止变为运行的时候调用。

完整周期:活动在onCreate和onDestory()方法之间经历的就是完整周期。

可见生存周期:活动在onStart()和onStop()之间经历的就是可见生存期.

前台生存周期:onResum()和onPause()之间经历的就是前台生存周期。

如图所示,官方的Activity的生命周期图示:



4.活动被回收了,数据需要保存怎么办?

前面说了,如果活动是Stop状态,可能也会被系统回收,那么我们所需要的数据也可能被清除,那么如何进行保存呢,这里我们就可以用到

onSaveInStanceState()

这个方法会携带一个Bundle来存储我们需要保存的数据。

public void onSaveInStanceState(Bundle bundle){
super...
String str = "Save it";
bundle.puString("data_key",str);
}


这样当这个活动被回收以后,再次启动这个活动执行onCreate方法的时候进行判断就可以了。

public void onCreate(Bundle save...){
supre....
setCon...
if(save..!=null){
String tempData = save... .getString("data_key");
}
}


这样就可以得到我们之前所需要的数据了,方法我只是简写了一下。

这也是我学习Activity的过程记录,有很多不完善的地方或者缺点请大神多多包涵,我只是为了记录一下自己的学习过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: