Activity生命周期是交给Android系统自己维护的
在android中Activity拥有四种状态:
1、Active/Running:
一个新的Activity启动入栈中后,它在屏幕的最前端,处于栈顶,界面中位可见并且可以和用户进行交互
的激活状态
If an activity in the foreground of the screen(at top of the stack) ,it is active or running.
2、Paused
当activity被另一个透明的或者Dialog样式的Activity覆盖时的状态,此时,他依然与窗口管理器保持连接,
系统继续维持其内部状态,因此他仍然是可见的,但它已经失去了焦点不能与用户进行交互(但是被窗口管理器管 理),而且在系统资源极度紧缺的时候可能被系统kill掉.
3、Stop
当Activity被另外一个Activity完全覆盖,失去焦点,并不可见的时候处于Stop状态,但是他仍然保存一些信 息,但是不能被用户看见(窗口管理器将他除名),而且极易容易被系统杀掉.
4、Killed
Activity被系统杀死回收或者为启动时的状态
当一个Activity实例被创建、销毁或者启动另一个Activity时,它在四种状态之间进行转换,
这种转换依赖于用户程序的动作。
Activity的状态转换图
Tips:Activity.finish()方法调用之后并不是立即执行onDestory()
方法销毁Activity,只是告诉Activity Manager当前的Activity
完成了相应的工作,可以被系统回收。至于何时被系统回收,有系统自己完成。和返回键一样的效果。
☞
Android是通过一种Activity栈的方式来管理Activity的,一个activity的实例的状态决定了他在栈中的位置。前台的 activity总是位于栈顶,当前台的activity因为异常等原因被销毁,处于栈第二层
的activity被激活,并且上浮到顶部,当新的activity启动的时候
原activity会被压入打栈的第二层,处于栈底的activity实例更容易被系统回收
Activity生命周期
public class OurActivity extends Activity {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
各个方法调用的时间