从API 33开始,不建议使用Bundle类的getSerializable(String)
方法。文档建议改用getSerializable(String, Class)
。但是该函数只能从API级别33中获得。
当前代码:
val model = args.getSerializable("key") as? Model
现在应该是这样吗?
val model = args.customGetSerializable<Model>("key")
@Suppress("DEPRECATION")
inline fun <reified T : Serializable> Bundle.customGetSerializable(key: String): T? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
getSerializable(key, T::class.java)
} else {
getSerializable(key) as? T
}
}
发布于 2022-08-17 12:09:52
现在应该是这样吗?
是。
最理想的情况是,谷歌会为BundleCompat
添加一些东西来应对这些变化,也许现在安卓13已经开始向用户发布了。
https://stackoverflow.com/questions/73388006
复制相似问题