gpt4 book ai didi

android - onConfigurationChanged() 在将横向方向更改为纵向时调用两次

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:51 33 4
gpt4 key购买 nike

我的应用程序出现了奇怪的问题。我问 here 的主要问题。问题是 android:configChanges="keyboardHidden|orientation" 在我的代码中不起作用。

所以我找到了通过代码中的 @Override onConfigurationChanged() 方法来管理方向的解决方案。但问题仍未得到妥善解决。

当前的问题是 onConfigurationChanged() 在我们改变方向时调用了两次横向到纵向。

如果我们将手机纵向更改为横向它的变化和工作,但现在当用户将手机横向移动为纵向时,onConfigurationChanged() 将调用并返回相同的方向状态,在第二次调用中它将返回纵向.

代码:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
Log.e("On Config Change", "LANDSCAPE");

Toast.makeText(getApplicationContext(), "L", Toast.LENGTH_LONG)
.show();
} else
{
Log.e("On Config Change", "PORTRAIT");
Toast.makeText(getApplicationContext(), "P", Toast.LENGTH_LONG)
.show();
}
}

日志

first mode its port mode , so change in land mode 

02-28 12:10:06.274: E/On Config Change(540): LANDSCAPE
02-28 12:10:14.154: E/On Config Change(540): LANDSCAPE
// here after changed the land mode try to chage in port mode then its calling two times as you can see as per the log
02-28 12:10:14.593: E/On Config Change(540): PORTRAIT
02-28 12:11:39.524: E/On Config Change(540): LANDSCAPE

同一问题的另一个查询>>

当我们改变方向时(在调用onConfigurationChanged 时)它会终止当前 Activity 。因此,根据我之前的问题,我在不同的文件夹中有两个布局。因此,当我更改屏幕 Activity 时,将删除所有数据。因此,在任何情况下,当用户更改手机方向时,我如何保存该数据以向用户显示。

最佳答案

我不确定 onConfigurationChanged() 是如何被调用两次的,但是为了避免您的应用程序中出现错误行为,您可以在接收到方向时取消 onConfigurationChanged() 的执行现在与以前的方向相同。对我有用,希望对你也有用:)

关于android - onConfigurationChanged() 在将横向方向更改为纵向时调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15129357/

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