如果我更改设备的方向,方法 onPause() 会出现问题

Issue with method onPause() if i Change orientation of device

我在 onPause() 中插入了一个注销用户的调用;但是当我改变 android 设备的方向时,方法 onPause 被调用相同。

为什么?如果我将设备转到 horizontal/portrait.

,我不需要调用方法 logoutUser

当我们改变 activity 的方向时,例如水平方向变为纵向,此时 activity 被重新创建,所以根据 android activity 生命周期 OnPause() 方法将被叫到。

为避免调用方法 logoutUser,您必须使用 onSavedInstanceState() 方法保存用户的当前状态。

参考此 link 以获得更多理解
https://developer.android.com/training/basics/activity-lifecycle/recreating.html

默认情况下,只要我们更改 phone 的方向,就会重新创建 Activity。检查 Handling Runtime Changes.

Some device configurations can change during runtime (such as screen orientation, keyboard availability, and language). When such a change occurs, Android restarts the running Activity (onDestroy() is called, followed by onCreate())

重新创建的原因是应用程序可能想要根据新方向更改布局。

但在大多数情况下,您不需要在每次用户更改 phone 方向时重新创建 Activity,因为您可以在 Activity 的 [=14] 上获得回调=] 并进行所需的布局更改。您可以通过在 AndroidManifest.xml 文件中的 Activity 标记中添加以下行来禁用它们。

      android:configChanges="orientation|keyboardHidden|screenSize"