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

粗略的讲一讲什么是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的生命周期图示:
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的过程记录,有很多不完善的地方或者缺点请大神多多包涵,我只是为了记录一下自己的学习过程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章