//当Activity展示给用户看到的时候被调用。如果本Activity处于Activity栈的顶部,则onStrat方法紧随着onResume方法的调用而调用 public void onStart() { super.onStart(); } //当Activity从停止运行的状态到开发运行的转台的时候被调用 public void onRestart() { super.onRestart(); } //当Activity开始将与用户进行交互时被调用 public void onResume() { super.onResume(); } //当其它Activity被激活时,当前Activity的onPause将被调用 public void onPause() { super.onPause(); } //当前Activity不再对用户可见的时候被调用(即可能是一个新的Activity被激活,或者是当前的Activity被销毁 public void onStop() { super.onStop(); } //当前Activity被销毁之前。要销毁一个Activity,可以调用finish()方法。 public void onDestroy() { super.onDestroy(); }
从代码和注释来看,相信也大概对Activity的生命周期有了一个很好的了解,但是对于这几个方法什么时候被调用仍然是一头雾水?现在就看看以下的过程:
假如程序里面含有Activity,Activity作为一个主页面:
程序调用 ----> 程序退出 :
onCreate() -> onStart() ->onResume()
->按回退键,退出程序 ->onPause() ->onStop()->onDestroy()
程序调用 ----> 按Home或者是Menu热键
onCreate() -> onStart() -> onResume()
-> 按Home或者是Menu热键 -> onPause() ->onStop()
这个时候Activity并没有销毁调,只是放到了后台上,当然如果你长时间没有再调用的话,系统又要需要内存来做其它事的话,最后这个Activity也是会销毁的!
程序调用 ----> 按Home或者是Menu热键 ----> 程序再次调用
onRestart() -> onStart() -> onResume()
-> ..............(后面的方法跟上面的两种没有区别)
注意对比一下各种情况程序的调用和退出所调用的方法,自然很容易对Activity的生命周期有深入的了解,在应用或者是游戏的开发上也会有很大的作用!