我有一个画布,当方向改变时它会重新绘制。这是一个自定义画布,不是 android 提供的。
当屏幕布局更改时,应用程序状态和(所有视图的状态)都会重置。我将屏幕方向更改为仅纵向;它保持屏幕布局不变,但应用程序再次重置。
我检查了文档,发现当方向改变发生时,活动被破坏并再次重新启动。Savestate() 无法保存和加载位图数据或我的自定义画布所需的任何大数据。
我再次检查了文档,发现处理运行时更改主题,其中提到了在发生特定配置更改时调用的 onConfigurationChanged(),在我的情况下是“方向”。此方法可防止重新启动,并将如何实现配置更改留给开发人员。它甚至在上一段中提到,如果我不实现该方法,那么这只会导致活动跳过 onRestart() 并且什么也不做。我将清单文件设置为
android:screenOrientation="portrait"
android:configChanges="orientation"
而且我没有实现 onConfigurationChanged()。但这也无济于事。我不知道为什么。这对我来说似乎很有帮助。
如果您有任何解决方案,请发布。此外,应用程序需要一些合理的时间,我希望应用程序在方向改变时不要重新启动。实际上,当这种情况发生时,我不想做任何事情。我也在使用模拟器,所以请澄清它是否只是模拟器的问题。
PS 我的互联网连接中断,我正在使用我愚蠢的移动客户端。我检查了离线文档。请忍受我的拼写。我正在努力寻找解决方案,但目前我很困惑。