如果我更改设备的方向,方法 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"
我在 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"