关于生命周期方法定义的问题

Question about lifecycle methods definition

我学习 Android 大约 6 个月,这段时间我描述了生命周期方法,例如某种回调,"trigerred" 当 OS 更改状态或配置时。

问题:


1) 例如,用户旋转屏幕。正如我所想,Android 调用一些接口并在回调到来时 Activity 运行它的代码。我不确定,因为我得到了 throw 文档(Activity/Window/...classes),但我没有找到这个界面或类似的东西。当用户旋转屏幕时到底发生了什么?


2) 例如,用户按下其移动应用程序上的按钮并创建新的 Activity。将调用生命周期方法,但 OS 状态或配置未更改。这意味着,我对生命周期方法的定义是错误的。如何正确描述呢?帮助我理解我的第一个定义有什么问题。


我知道这个 link:

https://developer.android.com/guide/components/activities/activity-lifecycle

还有一行:

The Activity class provides a number of callbacks that allow the activity to know that a state has changed...

但是里面 Activity class 我看到了,例如:

@MainThread
@CallSuper
protected void onCreate(@Nullable Bundle savedInstanceState) {

我还没有看到override这个词,那么Activity怎么实现呢? 有@CallSuper注解,但是parent classes(include Context)没有生命周期关联的代码。所以这是真正的回调?

不确定我是否理解你的问题,因为它含糊不清,但让我尝试解决 2 个具体示例:

1) For example, User rotate the screen. As i think, Android invoce some interface and Activity runing it's code when callback come. I'm not sure about it, because i got throw documentation(Activity/Window/...classes) and i did't find this interface or smth like it. What's really happen when user rotate the screen?

通常情况下,当用户旋转屏幕时,会发生"configuration change"。 Android 通过杀死当前活动的 Activity 来对此做出响应。 Android 在当前 Activity 上调用 "lifecycle methods":onPause(), onStop()onDestroy()。 Android 然后创建 Activity 的新实例并在该实例上调用 "lifecycle methods":onCreate(), onStart()onResume

如果应用程序声明它想要自己处理配置更改(通过在清单中为 Activity 指定 android:configChanges="..."),Android 不会 在屏幕旋转时杀死 Activity。相反,Android 在当前 Activity.

上调用 "lifecycle method": onConfigurationChanged()

2) For example, user push the button on his mobile app and create new Activity. Lifecycle methods will be called, but OS state or configuration was't change. It means, my definition of lifecycle methods is wrong. How to describe it correctly? Help me to understand what's wrong with my first definition.

"lifecycle methods" 不仅仅指 OS 状态或配置的变化。 "Lifecycle methods" 也被调用以通知您的 Activity 关于 Activity 本身状态的变化。 onCreate() 被调用以通知 Activity Activity 的一个新实例刚刚由 Android 创建并且 Activity 应该自行初始化。 onResume() 被调用以通知 Activity 现在是用户将看到的当前 Activity(在其任务中最顶层的 Activity 并且在屏幕上可见)。 onPause() 被调用以通知 Activity 另一个 Activity 将成为当前的 ActivityonConfigurationChanged() 被调用以通知 Activity 设备上发生了配置更改(这可以是许多不同的事情之一,包括:区域设置、屏幕尺寸、屏幕密度、屏幕方向、键盘存在等. "lifecycle methods" 在 Activity 的生命周期中的特定时间由 Android 调用许多其他 "lifecycle methods"。