gpt4 book ai didi

Android:高效的屏幕旋转处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:59 24 4
gpt4 key购买 nike

在 Android 中,当屏幕方向发生变化(在横向和纵向之间)时,将调用 onCreate 方法,如果处理不当,将在结果过于简单地更改布局时重新创建整个 Activity 并保留所有相同的信息。

我知道有几种方法可以解决这个问题,但我对最有效的方法感兴趣。

1) 告诉 list 我将通过覆盖 onConfigurationChanged() 方法并将其留空来处理方向更改。

2) 重写 onSaveInstanceState() 并将数据保存在此处以在 onCreate() 中重新填充

3) 重写 onPause() 将创建数据包并将其发送到 onSaveInstanceState()

很明显,这些都是选项,但哪个是更​​好的做法(小、中、大数据量)

谢谢

最佳答案

某些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性和语言)。发生此类更改时,Android 会重新启动正在运行的 Activity(调用 onDestroy(),然后调用 onCreate())。

  • 要正确处理重启,重要的是您的 Activity 通过正常的 Activity 生命周期恢复其先前的状态,在哪个 Android 在销毁你的之前调用了 onSaveInstanceState() Activity ,以便您可以保存有关应用程序状态的数据。你然后可以在 onCreate() 期间恢复状态或onRestoreInstanceState()

但是,您可能会遇到这样一种情况,即重新启动应用程序和恢复大量数据的成本可能很高,并且会造成糟糕的用户体验。在这种情况下,您还有另外两个选择:

  1. Retain an object during a configuration change

    允许您的 Activity 在配置更改时重新启动,但将有状态对象携带到 Activity 的新实例。

  2. Handle the configuration change yourself

    防止系统在某些配置更改期间重新启动您的 Activity,但在配置确实更改时收到回调,以便您可以根据需要手动更新您的 Activity。

因此,根据您的数据操作和应用程序的用户体验海岸,您可以选择最适合您的..

编辑:根据您对更改布局的需要,我认为您必须使用 onConfigurationChanged() 并在其中进行更改。

关于Android:高效的屏幕旋转处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997822/

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