繁体   English   中英

Android 13 (SDK 33):Bundle.getSerializable(String) 已弃用,有什么替代方案?

[英]Android 13 (SDK 33): Bundle.getSerializable(String) is deprecated, what is alternative?

从 API 级别 33 开始,Bundle class 的getSerializable(String)方法已被弃用。 文档建议改用getSerializable(String, Class) 但是 function 只能从 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
    }
}

这是现在应该的样子吗?

是的。

理想情况下,谷歌会为这些变化添加一些东西到BundleCompat ,也许他们现在会因为 Android 13 开始向用户发货。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM