1.onCreate(Bundle savedInstanceState)
1.职能
- 实例化组件并将组件放置在屏幕上(调用方法setContentView(int));
- 引用已实例化的组件;
- 为组件设置监听器以处理用户交互;
- 访问外部模型数据。
2.onStart()
3.onResume()
4.onPause()
5.onSaveInstanceState(Bundle savedInstanceState)
它的调用遵循一个重要原则,即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据.以下几个常见的场景:
1.当用户按下HOME键时。这是显而易见的,系统不知道你按下HOME后要运行多少其他的程序,自然也不知道activity A是否会被销毁,故系统会调用onSaveInstanceState,让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则。执行情况如下:
01-22 23:05:29.874 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onCreate executing.....
01-22 23:05:29.875 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onStart executing.....
01-22 23:05:29.875 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onResume executing.....
01-22 23:05:35.463 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onPause executing.....
01-22 23:05:35.759 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onSaveInstanceState executing.....
01-22 23:05:35.759 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onStop executing.....
01-22 23:05:40.109 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onStart executing.....
01-22 23:05:40.109 17745-17745/com.dream.cutegame.testprj1 I/MainActivity: onResume executing.....
2.长按HOME键,选择运行其他的程序时。
3.按下电源按键(关闭屏幕显示)时。
4.从activity A中启动一个新的activity时。
5.屏幕方向切换时,例如从竖屏切换到横屏时。在屏幕切换之前,系统会销毁activity A,在屏幕切换之后系统又会自动地创建activity A,所以onSaveInstanceState一定会被执行
6.onStop()
7.onDestroy()
8.日志-android.util.log
- public static int d(String tag, String msg)
- Log.i(tag,message); //info的日志
- Log.w(tag,message); //warn的日志
- Log.e(tag,message); //error的日志