android activity的生命周期

android activity 生命周期
android activity生命周期是安卓开发的基础知识,正确并熟悉掌握activity的生命周期会对项目开发有很大的作用.同样说到activity生命周期,常规都是,开篇一张图,但是内容这次是通过实践的哦,绝不是虚假的,
android activity的生命周期_第1张图片图片来源于https://me.csdn.net/zhangxuechao_这个博客,如图所示,当activity启动时,会依次调用onCreate()、onStart()、onReseum(),还会调用onWindowFocusChanged(),这个函数在Activity窗口获得或失去焦点时被调用,例如activity创建时首次呈现在用户面前;当前Activity被其他Activity覆盖;当前Activity转到其他Activity或按Home键回到主屏,自身退居后台;用户退出当前Activity。以上几种情况都会调用onWindowFocusChanged,并且当Activity被创建时是在onResume之后被调用,当Activity被覆盖或者退居后台或者当前Activity退出时,它是在onPause之后被调用如下图所示(原谅我打日志喜欢用比较醒目的红色):
在这里插入图片描述

当我们点击home键,就会依次调用onWindowFocusChanged()、onPause()、onStop方法
在这里插入图片描述
当我们没有在后台清除掉app,再次打开时会先调用onRestart()和onStart()方法,然后调用onReseum、onWindowFocusChanged(),如果后台清除掉了app,那么会象app启动时那样调用onCreate()、onStart()、onReseum()、onWindowFocusChanged()四个方法
在这里插入图片描述
当点击返回键返回到桌面时会调用onPause()、onWindowFocusChanged()、onStop()、和onDestory()函数
在这里插入图片描述

当跳转到另一个页面时,会调用onWindowFocusChanged()、onPasue(),和onStop()函数
在这里插入图片描述
当从第二个页面返回到当前页面时,会调用onRestart()、onStart()、和onResume()、onWindowFocusChanged()函数
在这里插入图片描述当点击关闭屏幕的按钮时,即锁屏时会调用onPause()、和onStop()、onWindowFocusChanged()函数
在这里插入图片描述
当返回当前页面,若当前页面还存在就会调用onRestart()、onStart()、onResume()方法
在这里插入图片描述最后附上我的测试代码

public class MainActivity extends AppCompatActivity {
    private String TAG="activity生命周期";
    private Context mContext=this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button click_to_next_act=findViewById(R.id.click_to_next_act);
        click_to_next_act.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(mContext,SecondActivity.class);
                startActivity(intent);
            }
        });
        Log.e(TAG,"onCreate被调用了");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG,"onStart()被调用了");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG,"onDestroy()被调用了");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG,"onPause()被调用了");

    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG,"onResume()被调用了");

    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG,"onRestart()被调用了");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG,"onStop()被调用了");
    }

    //Activity窗口获得或失去焦点时被调用,在onResume之后或onPause之后
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        Log.e(TAG, "onWindowFocusChanged被调用了.");
    }
}

你可能感兴趣的:(Android基础知识学习,Android,activity生命周期)