了解活动生命周期

Posted

技术标签:

【中文标题】了解活动生命周期【英文标题】:Understanding activity lifecycle 【发布时间】:2019-04-17 04:41:03 【问题描述】:

我刚刚开始体验 android 开发(我现在正在看教程)。我查看了 Android 开发者页面上的活动生命周期,我意识到活动总是通过onResume() 方法才能对用户可见。假设我将在活动中不使用任何片段,这是否意味着大部分代码逻辑都应该在 onResume() 方法内,而我应该在一开始就在 onCreate() 内膨胀一次布局?

【问题讨论】:

这真的取决于您对活动的期望。每次显示活动时,您是否有需要完成的工作?还是只在活动创建时进行一次? 一次性初始化在 onCreate 中进行,有时东西的初始化可以在 onResume 中进行,这取决于 Luca 所说的您需要什么。大多数代码通常位于事件侦听器中,例如用于 UI 单击事件的 onClick。 onResume 通常保留用于注册侦听器和回调,除非您正在做一些特别的事情。在很多情况下,您的活动不会仅仅因为不需要而覆盖 onResume 资源和变量的初始化应该在onCreate()中完成。因为,当 Activity 进入 onPause() 或 onStop() 时,将调用 onResume() 并且将调用相同的 variables and resource初始化和内存将被浪费。如果您的逻辑每次在活动进入后台并返回前台时运行,则根据优先级将逻辑写入 onStart() 和 onResume()。跨度> 谢谢大家,我现在更明白了。只是初学者的误解 【参考方案1】:

请参考该网站以更好地了解活动生命周期 https://developer.android.com/guide/components/activities/activity-lifecycle 这也是为了简要了解 https://www.javatpoint.com/android-life-cycle-of-activity

现在回答您的问题 onCreate() 不仅仅是为了夸大布局。 核心逻辑的主要部分写在这里,当您最小化或再次打开应用程序时会调用 onResume() 它会被一次又一次地调用,但 onCreate() 会被调用一次,除非控制不会转发给另一个活动

就像在 Java 中一样开始运行 公共静态无效主要(字符串[]参数)

在 Android(Activity) 中,执行的第一行将来自 onCreate() 而不是来自 onResume()

如果您将练习相同并且一次又一次地习惯此过程,那么您会更好地理解我试图告诉什么比您练习更有用,并且您的理解尝试打印吐司或登录每个状态活动生命周期,您可以在没有任何人帮助的情况下更好地理解这一点

祝编码愉快!

【讨论】:

以上是关于了解活动生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Activity生命周期

活动的生命周期系列返回栈

Activity的生命周期及常见回调顺序

(Android第一行代码活动的生命周期)生命周期

Activity的生命周期

如何在不使用常规活动生命周期事件的情况下检测/拦截应用程序生命周期事件