android activity 生命周期
android activity生命周期是安卓开发的基础知识,正确并熟悉掌握activity的生命周期会对项目开发有很大的作用.同样说到activity生命周期,常规都是,开篇一张图,但是内容这次是通过实践的哦,绝不是虚假的,
图片来源于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被调用了.");    }}

更多相关文章

  1. [原创] Android(安卓)Activity onNewIntent() 详解
  2. Android(安卓)四大组件之Activity生命周期
  3. Android--应用开发3(Android(安卓)layout XML属性)
  4. 详解 Android(安卓)的 Activity 组件
  5. Android(安卓)NDK--(调用c c++ 库)
  6. android中TextView跑马灯效果
  7. Android横竖屏切换不重新调用onCreate()
  8. android 嵌入服务端页面二 之WebView与页面互调
  9. Android操作系统默认图片

随机推荐

  1. 《第一行代码——Android》
  2. Android(安卓)JNI入门第一篇——HelloJni
  3. Android(安卓)学习小结
  4. Android(安卓)4.0 SDK 环境搭建体验(Windo
  5. android 自定义view绘制流程
  6. Android(安卓): 如何在WebView显示的页面
  7. Android中的签名机制
  8. 为什么Android必须在主线程更新UI?
  9. ubuntu下安装android ADT 插件
  10. [置顶] Android(安卓)IPC 通讯机制源码分