如何将Enum对象添加到Android Bundle?
从 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)