相关疑难解决方法(0)

307
推荐指数
6
解决办法
8万
查看次数

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

从 API 级别 33 开始,getSerializable(String)不推荐使用 Bundle 类的方法。文档建议改为使用getSerializable(String, Class)。但该功能仅适用于 API 级别 33。

我当前的代码:

val model = args.getSerializable("key") as? Model
Run Code Online (Sandbox Code Playgroud)

现在应该是这样吗?

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
    }
}
Run Code Online (Sandbox Code Playgroud)

android bundle serializable kotlin

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×2

android-bundle ×1

bundle ×1

enums ×1

kotlin ×1

serializable ×1