在Android Room中,我们可以使用@Database注释来创建数据库实例。但是,在某些情况下,我们可能需要在构造函数中传递一些其他参数,例如应用程序上下文或数据库名称。这时候我们需要使用RoomDatabase.Builder类来构建数据库实例,并在其中添加所需的参数。
以下是一个示例:
@Database(entities = {User.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {
private static MyDatabase INSTANCE;
public static MyDatabase getInstance(Context context, String dbName) {
if (INSTANCE == null) {
INSTANCE = new Room.databaseBuilder(context.getApplicationContext(),
MyDatabase.class, dbName)
.build();
}
return INSTANCE;
}
public abstract UserDao userDao();
}
MyDatabase db = MyDatabase.getInstance(getApplicationContext(), "my-database");
UserDao userDao = db.userDao();
这样做可以让我们在创建数据库实例的同时,添加所需的其他构造参数。