android activity的生命周期
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被调用了."); }}
更多相关文章
- [原创] Android(安卓)Activity onNewIntent() 详解
- Android(安卓)四大组件之Activity生命周期
- Android--应用开发3(Android(安卓)layout XML属性)
- 详解 Android(安卓)的 Activity 组件
- Android(安卓)NDK--(调用c c++ 库)
- android中TextView跑马灯效果
- Android横竖屏切换不重新调用onCreate()
- android 嵌入服务端页面二 之WebView与页面互调
- Android操作系统默认图片