gpt4 book ai didi

android - 如果有 getArguments(),我们是否应该在 fragment 中使用 savedInstanceState?

转载 作者:行者123 更新时间:2023-12-04 23:54:25 26 4
gpt4 key购买 nike

在 Android fragment 中,我们可以在 onCreate() 中从 savedInstanceStategetArguments() 获取初始数据。我经常检查它们是否为 null,然后分配变量。例如,在 Kotlin 中:

val bundle = savedInstanceState ?: arguments
bundle?.let {
startDate = Date(it.getLong(ARG_START_DATE, 0))
endDate = Date(it.getLong(ARG_END_DATE, startDate.time))
}

所以,首先我检查是否 savedInstanceState != null,如果是,将从那里获取数据。如果它是 null,我将检查 getArguments() != null,如果是,将从那里获取数据。否则变量将为 null0false

当我们留下一个 fragment 并调用 onSaveInstanceState() 时,我们可以将数据写入 bundle,稍后可以在 onCreate() 中读取它们。但我们也可以将数据写入 getArguments() 并从 fragment 的任何位置读取它们。为什么我们应该使用 savedInstanceState 因为我们可以写入 getArguments()

最佳答案

这两个选项的主要区别在于它们的存储位置。参数存储在内存中,但 saveInstanceState 序列化到磁盘。你应该看看这个页面: https://developer.android.com/topic/libraries/architecture/saving-states

关于android - 如果有 getArguments(),我们是否应该在 fragment 中使用 savedInstanceState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52272366/

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