Activity的生命周期

最后更新于:2022-04-01 14:43:19

Activity的生命周期体现在下面的6个函数上面: 1)onCreate    :Activity被创建的时候调用的方法 2)onStart       :Activity变成用户可见的时候调用的方法 3)onResume :界面获取焦点的时候调用的方法 4)onPause    :界面失去焦点,控件不能响应点击事件的时候调用的方法 5)onStop       :界面不可见的时候调用的方法 6)onDestroy  :Activity被销毁的时候调用的方法 Activity的完整生命周期自onCreate到onDestroy方法为止 可视生命周期由onStrart到onStop方法为止 前台生命周期由onResume到onPause方法为止 另外还有一个方法是onRestart方法,当一个Activity由onStop到onStart的时候就会调用onRestart方法 经过测试需要注意的点是:当应用程序点击back键之后它会依次调用onPause,onStop,onDestroy方法 当时如果点击home键之后它会调用onPause和onStop方法,并不会调用onDestroy方法,如果重新进入Activity则这个时候它会调用onRestart方法。这个点非常重要。 下面是我的测试代码,有两个Activity,只贴出第一个Activity: ~~~ package com.example.mytest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("onCreate"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); System.out.println("onStart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); System.out.println("onResume"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); System.out.println("onPause"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); System.out.println("onStop"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); System.out.println("onDestroy"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); System.out.println("onRestrat"); } public void click(View v) { Intent intent = new Intent(this, NextActivity.class); startActivity(intent); } } ~~~
';