--by CY[kotomifi@gmail.com]
1.protected void onCreate(Bundle savedInstanceState) { throw new RuntimeException("Stub!"); }
当创建一个Activity时,系统会自动调用onCreate方法来完成创建工作.该创建工作包括布局,监听器的绑定等.
首先说一下Bundle 这个类,Bundle是一个键值对,跟Map类似,两个Activity之间的通信可以用Bundle类来实现.
Bundle savedInstanceState对象则是保存程序上一次关闭(冻结)时的状态,也可以通过重写onFreeze方法来保存冻结前的状态.当程序启动(Activity 重新初始化时),会再次调用onCreate方法,从savedInstanceState中获取前一次的冻结状态,可以通过Bundle来将这一个Activity 中的内容传到下一个Activity 中.
当一个Activity 结束前需要保存状态,就保存在savedInstanceState中,当其它Activity创建时,就能从中获得数据.
2.protected void onSaveInstanceState(Bundle outState) { throw new RuntimeException("Stub!"); }
Android中的Activity通过onSaveInstanceState()方法保存Activity的状态,在onCreate或者onRestoreInstanceState方法中哦功能恢复,如果是通过onRestart方法运行,则只会执行onSaveInstanceState方法.
图1-1是android Activity的生命周期.
图1-1
3. protected void onRestoreInstanceState(Bundle savedInstanceState) { throw new RuntimeException("Stub!"); }
解释见第2条
4.protected void onRestart() { throw new RuntimeException("Stub!"); }
解释见第2条
5. protected void onStart() { throw new RuntimeException("Stub!"); }
下面来结合来说一下onCreate, onStart, onResume, onPause, onRestart, onStop, onDestroy方法.当启动一个Activity时,系统会依次调用onCreate, onStart, onResume方法.
从activity1启动activity2时,会先调用activity1的onPause方法,然后再调用activity2的onCreate, onStart, OnResume方法,若要完全覆盖activity1,则最后再调用activity1的onStop方法.
onCreate方法:
onStart方法:
onResume方法:
onPause方法:
onRestart方法:
onStop方法:
onDestroy方法:
Android Activity类讲解(一),布布扣,bubuko.com
原文:http://www.cnblogs.com/apping/p/3755934.html