生命周期流程图
Activity的状态
运行状态、暂停状态、停止状态、销毁状态
说明:1》正常启动一个activity将先执行onCreate->onStart()->onResume然后进入运行状态
2》当正在运行的activity被后来的activity覆盖(依然可见)时将执行onPause()进入暂停状态
3》当activity不可见时将进入停止状态
4》当activity结束或所在进程被销毁时将进入销毁状态
回调方法
在activity生命周期中,如下方法会被回调:
onCreate 创建activity时被回调
onStart 启动activity时被回调
onReStart 当重新启动activity时被回调 (activity被停止后)
onResume 恢复activity时被回调
onPause 暂停activity时被回调
onStop 停止activity时被回调
onDestroy 销毁activity时被回调
开发activity时可以选择性的覆盖一部分方法,其中onCreate方法是必须要覆盖的;其次还有onPause、onResume,比如在玩手机游戏过程中有来电,那么我们就可以覆盖此方法来保存游戏进度。当重新回到游戏时,再在onResume中恢复之。
代码:
View Code
1 package com.example.activitylifecycle; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.util.Log; 6 import android.view.Menu; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 10 public class ActivityLifeDemo extends Activity { 11 12 private static final String TAG = "ActivityLifeDemo"; 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 Log.d(TAG,"onCreate"); 18 setContentView(R.layout.activity_activity_life_demo); 19 findViewById(R.id.finish).setOnClickListener(new OnClickListener() { 20 21 @Override 22 public void onClick(View v) { 23 ActivityLifeDemo.this.finish(); 24 } 25 }); 26 } 27 28 @Override 29 protected void onStart() { 30 super.onStart(); 31 Log.d(TAG,"onStart"); 32 } 33 34 @Override 35 protected void onRestart() { 36 Log.d(TAG,"onRestart"); 37 super.onRestart(); 38 } 39 40 @Override 41 protected void onResume() { 42 Log.d(TAG,"onResume"); 43 super.onResume(); 44 } 45 46 @Override 47 protected void onPause() { 48 Log.d(TAG,"onPause"); 49 super.onPause(); 50 } 51 52 @Override 53 protected void onStop() { 54 Log.d(TAG,"onStop"); 55 super.onStop(); 56 } 57 58 @Override 59 protected void onDestroy() { 60 Log.d(TAG,"onDestroy"); 61 super.onDestroy(); 62 } 63 64 }
启动应用:
锁屏:
开屏:
调用finish,或back键
按home键