今日见解———Activity生命周期

今日我将给各位讲解我对Activity生命周期的一些理解
如有不对需要改正的地方请多谅解
废话不多说 先给大家看一张我自己做一张图吧

这里写图片描述

相信学习Android的人应该对这张图都跟熟悉吧,这是安卓Activity的生命周期活动图,详细而直观得表现了Activity各生命周期间的关系。下面我就来说一说这些生命周期吧。

onCreate:第一次启动时会运用到,Create表示创建的意思,这是Activity生命周期的第一个方法,也是我们在android开发中接触的最多的生命周期方法。它的作用是进行Activity的一些初始化工作,比如使用setContentView加载布局,对一些控件和变量进行初始化等。

onStart :Start代表启动,这是生命周期的第二个方法。

onResume:resume表示继续、重新开始,这名字和它的职责也相同。当它出现时 onstart一定被执行。

onPause:pause表示暂停,当Activity要跳到另一个Activity或应用正常退出时都会执行这个方法。

onStop:当activity不可见时才会被启用,stop表示停止,此时Activity已经不可见了,但是Activity对象还在内存中,没有被销毁。这个阶段的主要工作也是做一些资源的回收工作。

onDestroy:当销毁时才可用,destroy表示毁灭,这个阶段Activity被销毁,不可见,我们可以将还没释放的资源释放,以及进行一些回收工作。

onRestart:restart表示重新开始,Activity在这时可见,当用户按Home键切换到桌面后又切回来或者从后一个Activity切回前一个Activity就会触发这个方法。这里一般不做什么操作。当它出现时 onstart一定被执行。

相信说到这里还是有很多疑惑的地方吧
最后,举几个实际例子来说明。

:假设你有一个“首页Activity”和一个“编辑页Activity”

当用户点击首页里的“开始编辑”按钮时,首页的onPause()->onStart()onStop()依次触发,编辑页的onCreate()->onStart()->onResume()依次触发;

当用户在编辑页按下“返回”按钮时,编辑页的onPause()->onStop()依次触发,之后首页的onStart() -> onResume()依次触发;

这时用户在首页按下“返回”按钮,首页的onPause()->onStop()->onDestroy()依次触发。

二:当按下back键和home键时会执行哪些生命周期

1:首先让我们打开Android Studio写一段打印生命周期的代码

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.v(TAG, “onCreate”);
}

@Override
protected void onRestart() {
    super.onRestart();
    Log.v(TAG, "onRestart");
}

@Override
   protected void onStart() {
       super.onStart();
       Log.v(TAG, "onStart");
   }

@Override
protected void onResume() {
    super.onResume();
    Log.v(TAG, "onResume");
}

protected void onPause() {
    super.onPause();
    Log.v(TAG, "onPause");
}

@Override
protected void onStop() {
    super.onStop();
    Log.v(TAG, "onStop");
}


@Override
protected void onDestroy() {
    super.onDestroy();
    Log.v(TAG, "onDestroy");
}

}

点击运行然后进行Back和按home操作可以得出
HOME键的执行顺序:onPause->onStop->onRestart->onStart->onResume
BACK键的顺序: onPause->onStop->onDestroy->onCreate->onStart->onResume

说到这里,我的见解也就结束了,我的见解也只是基础了解,如有不对或需要补充的地方可以直接指出。

猜你喜欢

转载自blog.csdn.net/tyl1999/article/details/80563488