gpt4 book ai didi

android - onStop() 是否总是在 onPause() 之前

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:21 24 4
gpt4 key购买 nike

我读到过,无论在什么情况下,对 onStop() 的调用总是先于对 onPause() 的调用。引用:http://developer.android.com/training/basics/activity-lifecycle/stopping.html 上的图 1

我们知道,当一个 Activity 没有用户焦点但它仍然部分可见时,它会暂停,而当它根本不可见时,它会停止。

现在,当用户在一个 Activity 中并从最近的应用程序窗口中选择并进入另一个应用程序时,该 Activity 将从恢复/运行状态进入停止状态。没有中间暂停状态。

不是吗?

在 onStop() 之前总是有 onPause() 的好理由是什么?我们可以在 onStop() 中执行在 onPause() 中执行的操作。 为什么我们总是在 onStop() 之前需要 onPause()?

最佳答案

onPause() 总是被调用。这是有保证的。如果您需要在 Activity 中保存任何状态,您需要将其保存在 onPause() 中。 onStop() 可以在 onPause() 之后调用,也可以不调用。视情况而定。

有很多生命周期方法。您不需要覆盖所有这些。您只需要覆盖您需要(或想要)自定义 Activity 行为的那些。生命周期方法有很多,因为不同的应用有不同的需求。 Activity 的生命周期记录完备且行为良好。这允许程序员根据应用程序的特定要求将代码准确地放在需要的地方。

你问过

What is the good reason for always having onPause() before onStop(). We can do in onStop() what is done in onPause().

onPause() 总是在您的 Activity 上调用,如果它在前台,当 Android 想要做其他事情时。它可能会启动另一个 Activity,这可能会导致您的 Activity 的 onStop() 被调用。它可能只是在您的 Activity 上调用 onResume()。它可能会终止您的进程,而不会再调用您的任何生命周期方法。

由于不能保证调用 onStop(),因此您不能总是在 onStop() 中执行在 onPause() 中完成的操作

在大多数 Activity 中,您会发现需要将代码放在 onResume()onPause() 中。您通常不必在 onStop()onStart()onRestart() 中执行任何操作。

关于android - onStop() 是否总是在 onPause() 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com