gpt4 book ai didi

android - 访问具有多个接口(interface)的 android room DB 的最佳解决方案是什么?

转载 作者:行者123 更新时间:2023-11-29 02:19:54 24 4
gpt4 key购买 nike

我有一个房间数据库,它来自某个我不想修改的图书馆,但我必须访问该数据库。该库已经实现了接口(interface),可以使用实时数据和 View 模型访问房间数据库。当访问 android room DB 时,它需要接口(interface)。(根据文档,它必须扩展“RoomDatabase”)但问题是从那个库我无法通过接口(interface)访问 DB。所以我的计划是创建另一个接口(interface)(扩展 RoomDatabase)来访问该数据库。我不确定,但我认为这不是使用房间数据库的一般方式。如果我使用这种方法或任何其他方法来解决此问题,是否会出现任何关键问题?

最佳答案

我认为您应该在数据库中使用带有单例实例的工厂。因此,您可以在任何地方访问您的数据库,而无需创建任何额外的数据库实例。

这是我使用 Kotlin 编写的代码,但我认为 Kotlin 和 Java 的思想是相同的

@Database(entities = [Address::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun addressDao(): AddressDao

companion object{
private var INSTANCE: AppDatabase? = null

fun getInstance(context: Context) = INSTANCE ?:
Room.databaseBuilder(context, AppDatabase::class.java, "MyDatabaseName")
// .allowMainThreadQueries()
.build().also { INSTANCE = it }
}
}

关于android - 访问具有多个接口(interface)的 android room DB 的最佳解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56929323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com