gpt4 book ai didi

java - 设备旋转导致 Activity 被销毁和创建

转载 作者:太空狗 更新时间:2023-10-29 16:19:21 26 4
gpt4 key购买 nike

我知道 Android 会销毁当前 Activity 并重新创建它,因为设备配置在运行时发生了变化。

但是设计这种行为背后的基本原理是什么?

我的意思是为什么要销毁并重新创建当前 Activity 。如果不是这样,有什么缺点吗?

最佳答案

首先,让我们看看what Google has to say about it :

The restart behavior is designed to help your application adapt to new configurations by automatically reloading your application with alternative resources that match the new device configuration.

那是什么意思呢? Android 设计人员决定,(大多数*)设计良好的应用程序应该具有针对不同配置量身定制的资源。例如,大多数应用程序在纵向和横向模式下都有不同的布局。不仅如此,语言的变化可能需要不同的字符串等。

要处理此问题,有(至少)两种方法之一。重新启动整个事情,或者只是加载新资源。

只加载新资源会给开发人员(IMO)带来额外的负担,迫使他们更深入地思考到底需要哪些资源,并让他们在某种onConfigChanged()<中重新加载 方法。如果你错过了一个会怎样?如果您不按照与之前相同的顺序加载它们怎么办?这会改变一切吗?

通过重新启动整个过程,它确保您是从一张白纸开始的,并且应用程序的响应方式应该与您首先从该配置开始(技术上是这样做的)的方式完全相同。


*当然也有异常(exception)。例如,任何锁定在一个方向的应用程序都不关心方向变化。一些企业应用不需要多种语言等。我们的目标是让 90% 的人轻松使用,而不是 10% 的人。

关于java - 设备旋转导致 Activity 被销毁和创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030280/

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