【发布时间】:2018-03-25 16:23:16
【问题描述】:
将android.net.Uri 转换为可与RoomDatabase 一起使用的最佳方法是什么?
【问题讨论】:
-
也许是 uri.toString()?
标签: android android-room
将android.net.Uri 转换为可与RoomDatabase 一起使用的最佳方法是什么?
【问题讨论】:
标签: android android-room
使用 Room 存储和检索Uri 的最佳方式是以String 的形式持久化。此外,我们已经有了将Uri 转换为String 的API,反之亦然。
有两种方式:
Uri 到 String 的转换,然后将其存储起来并用于获取。TypeConverter 为您完成这项工作。选择方式完全由您和应用程序要求决定。也就是说,这是TypeConverter 的Uri String:
class UriConverters {
@TypeConverter
fun fromString(value: String?): Uri? {
return if (value == null) null else Uri.parse(value)
}
@TypeConverter
fun toString(uri: Uri?): String? {
return uri?.toString()
}
}
【讨论】: