Java 横向定位不正确
当我旋转设备时出现问题,我的活动被重新执行,值例如,假设您有一个带有按钮的活动,单击此按钮时,它将在文本视图(计数器)中显示增加的值。当您将设备置于横向模式时,活动将再次运行,并且您将看到(再次)价值增加。我的问题是,当您旋转设备时,有没有办法不再运行活动?添加android:configChanges在您的活动中Java 横向定位不正确,java,android,Java,Android,当我旋转设备时出现问题,我的活动被重新执行,值例如,假设您有一个带有按钮的活动,单击此按钮时,它将在文本视图(计数器)中显示增加的值。当您将设备置于横向模式时,活动将再次运行,并且您将看到(再次)价值增加。我的问题是,当您旋转设备时,有没有办法不再运行活动?添加android:configChanges在您的活动中 <activity name= ".YourActivity" android:configChanges="orientation|screenSize"/> 添
<activity name= ".YourActivity" android:configChanges="orientation|screenSize"/>
添加android:配置活动中的更改
<activity name= ".YourActivity" android:configChanges="orientation|screenSize"/>
在清单文件中添加
android:configChanges=“orientation | screenSize”
到活动标签
例如:
<activity
android:name=".dummyActivity"
android:configChanges = "orientation|screenSize"/>
在清单文件中添加android:configChanges=“orientation | screenSize”
到活动标签
例如:
<activity
android:name=".dummyActivity"
android:configChanges = "orientation|screenSize"/>
请阅读。您将看到有两种处理配置更改的解决方案:
您可以通过更新清单中的活动来声明自己正在处理更改。这样,您的活动将不会重新启动,并且将调用onConfigurationChanged()
:
<activity ...
android:configChanges="orientation|screenSize"
...>
您可以通过onSaveInstanceState()
函数将数据对象传递给新活动。传递大型对象可能会减慢应用程序的速度。最好使用ViewModels将数据与视图分离(例如,使用ViewModels),这些更改会保留这些数据
第一种方法看似简单,但不推荐使用,正如您在开头提供的链接中所看到的:
注意:自行处理配置更改可能会使更改更加复杂
更难使用替代资源,因为系统确实如此
不会自动为您应用它们。这项技术应该是
当您必须避免由于故障而重新启动时,被认为是最后的选择
大多数应用程序都不建议更改配置和配置
请阅读。您将看到有两种处理配置更改的解决方案:
您可以通过更新清单中的活动来声明自己正在处理更改。这样,您的活动将不会重新启动,并且将调用onConfigurationChanged()
:
<activity ...
android:configChanges="orientation|screenSize"
...>
您可以通过onSaveInstanceState()
函数将数据对象传递给新活动。传递大型对象可能会减慢应用程序的速度。最好使用ViewModels将数据与视图分离(例如,使用ViewModels),这些更改会保留这些数据
第一种方法看似简单,但不推荐使用,正如您在开头提供的链接中所看到的:
注意:自行处理配置更改可能会使更改更加复杂
更难使用替代资源,因为系统确实如此
不会自动为您应用它们。这项技术应该是
当您必须避免由于故障而重新启动时,被认为是最后的选择
大多数应用程序都不建议更改配置和配置
将此添加到清单中
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
如果configChanges包含uiMode,请将其删除。如果不想卸载uiMode,可以更新这些库
androidx.appcompat:appcompat:1.2.0-rc01
androidx.core:core:1.3.2
将此添加到清单中
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
如果configChanges包含uiMode,请将其删除。如果不想卸载uiMode,可以更新这些库
androidx.appcompat:appcompat:1.2.0-rc01
androidx.core:core:1.3.2