4

我对 Android Activity 的生命周期有一个重大疑问。用正常的英语术语来说,一旦你完成了 Pause,Resume 就会完成。但是在 Activity 的生命周期中,甚至在第一次 onPause 之前就已经调用了 OnResume。什么是这背后的原因是什么?

谁能告诉我为什么它的结构是这样的?

谢谢。

4

3 回答 3

2

在通用英语术语中,Resume 意味着当某事暂停后再次开始交互时,

但在 Android 术语中,这意味着当 Activity 处于前台并且用户开始向 Activity 提供输入时。它可能是第一次或什至在暂停后处于前台。onResume() 只是暗示用户已经开始与活动交互。

onStart()并且onResume()是两个不同的术语。onStart()当 Activity 对用户可见时调用。并onResume()在活动进入前台并且用户开始与之交互时调用。

我给你举个例子,

假设你有一个带有一些移动对象的活动,这里我将描述在不同阶段执行的操作,

onStart()-活动从这里开始,而不是动画。

onResume()-在这里,对象开始动画。

onPause()-这里的对象停止Animation,Activity仍在运行。

OnStop-活动在这里停止。

希望对理解有所帮助。

于 2012-12-28T05:36:21.513 回答
1

参考这张图片:

活动生命周期

onResume() 将在 onStart() 之后调用。我认为您注意到的是 onResume()。已经详细描述了活动生命周期:

OnResume:当 Activity 处于暂停状态后将开始与用户交互时调用此方法。调用此方法时,活动将移动到活动堆栈的顶部,并且正在接收用户输入。如果活动开始接受用户输入后需要执行任何任务,活动可以覆盖此方法。

于 2012-12-28T04:53:57.933 回答
1

您可以查看活动生命周期并确定 Android 的 onPause() 和 onResume() 概念不同。我只回答下面的问题。休息你可以阅读

谁能告诉我为什么它的结构是这样的?

文档

onResume()

当 Activity 开始与用户交互时调用。此时,您的活动位于活动堆栈的顶部,用户输入将转到它。始终跟随 onPause()。

这意味着如果你想开始一些事情(比如一个计时器,当这个活动处于焦点并接收用户交互时显示第二个计数),你可以在 onResume() 中启动它。当这个活动成为焦点时,onResume() 是我们的回调。无论此活动是刚刚创建还是在暂停后恢复,都应该调用它

ya 在 onStart() 之后它很好,但用英语来说,resume 会在暂停后被命名,对吗?为什么它被设计成这样,有什么理由吗?

我认为你不应该在这种情况下采取字面意思。

于 2012-12-28T05:02:36.407 回答