首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我可以使用android:configChanges ="keyboard | orientation | screenLayout",为什么我需要setRetainInstance或onSaveInstance?

当您在Android开发中使用android:configChanges="keyboard | orientation | screenLayout"属性时,您可以防止某些配置更改(如屏幕旋转、键盘显示等)导致Activity被重新创建。这样可以保证您的Activity在这些配置更改时不会被销毁并重建,从而避免了数据丢失和重复渲染。

然而,在某些情况下,您可能仍然需要使用setRetainInstanceonSaveInstanceState方法来保存和恢复Fragment的状态。这通常发生在以下情况:

  1. 当您的Activity被系统销毁并重建时,例如在低内存情况下。在这种情况下,您的Fragment可能会被系统销毁并重建,您需要使用setRetainInstance来确保您的Fragment在这些情况下保持其状态。
  2. 当您的Activity被销毁并重建时,您需要使用onSaveInstanceState方法来保存Fragment的状态,以便在Activity重建时恢复这些状态。

总之,虽然android:configChanges="keyboard | orientation | screenLayout"可以防止Activity被重新创建,但您仍然需要使用setRetainInstanceonSaveInstanceState来保存和恢复Fragment的状态,以确保在特定情况下您的应用程序能够正确地处理配置更改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券