概述: 四大组件之一的Activity组件,在应用中一个Activity可以用来表示一个界面,我们通常可以理解成“活动”,即一个活动开始,代表Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运行和启动。Activity的生命周期交给系统统一管理。
先来看千年离不开的Activity生命周期图:
在Android中,Activity拥有三个基本状态:
1 public class MainActivity extends Activity { 2 public static final String tag = "MainActivity的生命周期测试---"; 3 private Button button; 4 //Activity创建时被调用 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 Log.i(tag, "onCreate"); 10 button = (Button) findViewById(R.id.button); 12 button.setOnClickListener(new View.OnClickListener() { 13 @Override 14 public void onClick(View v) { 15 //点击button跳转到Main2Activity界面,Main2Activity在配置文件中设置为透明属性 16 Intent intent = new Intent(MainActivity.this, Main2Activity.class); 17 startActivity(intent); 18 } 19 }); 20 } 21 22 //Activity重新可见时被调用,接着会调用onStart() 23 @Override 24 protected void onRestart() { 25 super.onRestart(); 26 Log.i(tag, "onRestart"); 27 } 28 29 //Activity可见时被调用 30 @Override 31 protected void onStart() { 32 super.onStart(); 33 Log.i(tag, "onStart"); 34 } 35 36 //Activity获得焦点,可以进行交互时被调用;处于前台状态 37 @Override 38 protected void onResume() { 39 super.onResume(); 40 Log.i(tag, "onResume"); 41 } 42 43 //Activity失去焦点,但是可见(在其他应用需要内存时可能会被kill掉),此状态可以转为前台onResume() 44 @Override 45 protected void onPause() { 46 super.onPause(); 47 Log.i(tag, "onPause"); 48 } 49 50 //Activity完全不可见时被调用(可能会被系统kill掉);例如返回到此状态时,如果没有被kill那么就会调用onReStart() 51 @Override 52 protected void onStop() { 53 super.onStop(); 54 Log.i(tag, "onStop"); 55 } 56 //Activity被销毁时被调用 57 @Override 58 protected void onDestroy() { 59 super.onDestroy(); 60 Log.i(tag, "onDestroy"); 61 } 62 }
设置Main2Activity为透明:
<activity android:theme="@android:style/Theme.Translucent" android:name=".Main2Activity" android:label="@string/title_activity_main2" > </activity>
结论:
10-21 21:00:14.859 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onCreate
10-21 21:00:14.859 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onStart
10-21 21:00:14.859 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onResume
10-21 21:00:36.256 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onPause
10-21 21:01:13.813 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onResume
10-21 21:01:47.057 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onPause
10-21 21:01:47.127 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onStop
10-21 21:02:02.274 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onRestart
10-21 21:02:02.277 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onStart
10-21 21:02:02.387 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onResume
10-21 21:02:28.791 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onPause
10-21 21:02:29.221 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onStop
10-21 21:02:29.221 28836-28836/com.example.lenovo.activitydemo I/MainActivity的生命周期测试---﹕ onDestroy
锁屏: onPause() -> onStop()
解锁: onRestart() -> onStart() -> onResume()
原文:http://www.cnblogs.com/denluoyia/p/5985886.html