Android应用程序中Activity的生命周期
对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的应用
下面来看看具体的Activity生命周期
图1是官方给我们提供的Activity生命周期图:
图1
大家大概了解了Activity的生命周期后,请看下面的代码
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("MY_LOG", "---onCreate"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i("MY_LOG", "---onStart"); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onRestoreInstanceState(savedInstanceState); Log.i("MY_LOG", "---onRestoreInstanceState"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i("MY_LOG", "---onRestart"); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); Log.i("MY_LOG", "---onSaveInstanceState"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i("MY_LOG", "---onResume"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i("MY_LOG", "---onPause"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i("MY_LOG", "---onStop"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i("MY_LOG", "---onDestroy"); } }此段代码列出了Activity的各个生命周期所要执行的方法,现在对这些方进行验证。
当第一次启动应用程序时,打印出的LOG如下图:
当按下返回键时,打印出的LOG如下图:
当再次打开应用程序时,打印出的LOG如下图:
当按下home键时,打印出的LOG如下图:
当第3次打开应用时,打印出的LOG如下图:
当默认状态下循环旋转屏幕时,打印出的LOG如下图:
当在Activity中配置了
android:configChanges
="orientation|screenSize"时,打印出的LOG如下图:
注:退出Activity保存数据时要在onPause()方法中。因为onStop(),方法中有可能Activity会销毁