Activity生命周期详解

时间:2014-02-19 08:32:43   收藏:0   阅读:428

Activity生命周期图:

bubuko.com,布布扣

1.Android用Activity Stack来管理多个Activity,同一时刻只有最顶端的Activity处在激活状态或运行状态(Active or Running),其它的Activity都被压在下面。

2.Activity运行情况:

从创建到运行态所触发的事件:onCreate()—>onStart()—>onResume();

从运行态到静止态所触发的事件:onPause()—>onStop();

从静止态到运行态所触发的事件:onRestart()—>onStart()—>onResume();

从运行态到暂停态所触发的事件:onPause();

从暂停态到运行态所触发的事件:onResume();

3.Activity生命周期

4.当弹出Dialog或半透明的Activity时,原Activity便会进入到pause状态,此时原Activity可见,但不能与用户交互。

5.子线程中更新UI的,这个可以算是Google设计Android的一个原则之一,也是开发者众所周知的!但是真的不能在子线程中更新UI吗?答案是:是的,不能在子线程中更新UI!

有趣的例子:

将如下代码放在onCreate()、onStart()、onResume()中

new Thread(new Runnable() {

public void run() {

      mBtnA.setText("Runnable");

}

}).start();

执行后发现不会报错,为什么呢?因为UI在上面三个方法中还未实例化,也就没有更新UI,因此没有报错,但是text作为Button的一个属性被保留下来,当UI被实例化时,会显示text内容。

修改为如下代码会报错:

new Thread(new Runnable() {

public void run() {

     Thead.sleep(5000);

     mBtnA.setText("Runnable"); //这里的Button已实例化

}

}).start();

原文:http://www.cnblogs.com/locust/p/3554474.html

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