Activity生命周期图:
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