您的位置:首页 > 移动开发 > Android开发

Android学习之浅谈Activity的生命周期

2020-06-29 04:53 1281 查看

作为Android四大组件之一的activity 在开发的过程中,我们对其使用必不可少。所谓想要熟练使用一个知识点,必先深入了解其原理。那么今天,我们就来聊聊关于Activity的生命周期吧~

一、什么是activity?

1.通俗的说,一个activity就是一个屏幕。用于用户与应用程序之间进行交互。
2.activity之间通过intent进行通信。
3.当你每创建一个activty,都必须要在AndroidManifest.xml配置文件中声明,否则将无法识别并执行。

二、activity的生命周期


首先上一张图。相信这张图很多人都看见过,但是可能不是特别的理解,下面我就来一一介绍。

  1. onCreate()。每个活动中我们都重写了这个方法,所以大家应该都挺熟悉的。这个方法用于完成活动的初始化操作,比如加载布局、绑定事件等。

  2. onStart()。这个方法在活动由不可见变为可见的时候调用。

  3. onResume()。这个方法在活动准备好与用户进行交互的时候调用。

  4. onPause()。这个方法在系统准备去启动或者恢复另一个活动的时候调用。

  5. onStop()。这个方法在活动完全不可见的时候调用。
    注:它与onPause()的主要区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()方法并不会执行。

  6. onDestroy()。这个方法在活动被销毁之前调用,之后活动的状态也会变成销毁状态。

  7. onRestart()。这个方法在活动由停止状态变为运行状态调用,也就是活动被重新启动了。

相信你看到这些可能还是有点懵逼~~ 那我们直接上代码

三、代码演示


如图 我创建了两个activity 以及其相对应的布局文件。

NormalActivity主要是输出一段话,DialogActivity也是如此,但是在AndroidManifest中,我给它设置了一个对话框的主题格式,已验证onStop()与onPause()方法的不同。

再贴一个回调方法的代码:

其他代码较为简单,就不一一贴图了。

四、演示分析

现在我们运行下程序:
观察logcat中的打印日志:

当MainActivity第一次被创建的时候,它会依次执行onCreate()、onStart()、onResume()方法,然后我们点击第一个按钮:

由于执行了另一个活动NormalActivity 所以onPause()和onStop()方法会执行。这时候我们按下返回键返回MainActivity:

由于之前MainActivity处于停止状态,所以返回后,onRestart()方法会执行,然后依次执行onStart()和onResume()方法。但是这个时候onCreate()方法不会重新调用,因为MainActivity没有被重新创建。

然后我们点击第二个按钮,启动DialogActivity:


弹出一个对话框。这时候我们观察logcat:

这个时候我们发现,onPause()方法得到执行,onStop()方法没有执行,因为它仅仅只是一个标题框,并没有完全的遮盖MainActivity,所以MainActivity只是进入了暂停状态,并没有停止。这时候我们再点击返回键:

只会执行onResume()方法,和我们想的一样。

最后我们在MainActivity页面点击Back按钮,退出程序:

依次执行onPause()、onStop()、onDestroy()方法,最后销毁MainActivity。

这样一个完整的Activity生命周期,我们就体验了一遍呀~

感觉也是没有什么特别难的点,自己亲手敲一遍代码,会对这个过程印象更加深刻。

如果你还有什么不明白的地方,请在评论区留言,我们可以探讨一下,共同进步。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: