我插入onPause()调用注销用户;但是当我改变android设备的方向时,方法onPause被调用相同。
为什么?如果我将设备转为水平/纵向,我不需要调用logoutUser方法。
答案 0 :(得分:1)
当我们改变活动的方向,例如水平到纵向时,重新创建时间活动,因此根据android活动生命周期OnPause()方法将被调用。
要避免调用方法logoutUser,必须使用onSavedInstanceState()方法保存用户的当前状态。
请参阅此链接以了解更多信息,https://developer.android.com/training/basics/activity-lifecycle/recreating.html
答案 1 :(得分:0)
默认情况下,只要我们更改手机的方向,就会重新创建Activity
。检查Handling Runtime Changes。
某些设备配置可能会在运行时更改(例如屏幕方向,键盘可用性和语言)。当发生这样的更改时,Android会重新启动正在运行的Activity(调用onDestroy(),然后调用onCreate())
娱乐背后的原因是应用可能希望根据新方向更改布局。
但在大多数情况下,每次用户更改手机定位时都不需要重新创建Activity
,因为您可以在Activity
的{{1}}上进行回调并进行必要的操作布局变化。您可以通过在onConfigurationChanged()
文件中的Activity
标记中添加以下行来停用它们。
AndroidManifest.xml