gpt4 book ai didi

android - 开始时在 Room 中添加数据的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-29 23:59:55 35 4
gpt4 key购买 nike

我想在应用程序第一次启动时在我的数据库中添加一些行(大约 180 行)。我找到了一些使用 Executors.newSingleThreadExecutor() 的教程,例如 https://android.jlelse.eu/pre-populate-room-database-6920f9acc870 .但是还有其他方法可以预填充数据库吗?

AppDatabase.class

@Database(entities = {Country.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;

public abstract CountryDao countryDao();

public synchronized static AppDatabase getInstance(Context context) {
if (INSTANCE == null)
INSTANCE = buildDatabase(context);
return INSTANCE;
}

private static AppDatabase buildDatabase(final Context context) {
return Room.databaseBuilder(context, AppDatabase.class, "countries").allowMainThreadQueries().addCallback(new Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
getInstance(context).countryDao().insertAll(Country.populateData());
}
});
}
}).build();
}
}

最佳答案

没有。

如果您要创建一个新数据库,只有一种方法可以预填充数据库,那就是注册 this回调和覆盖 onCreate(SupportSQLiteDatabase db) 方法。

关于android - 开始时在 Room 中添加数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074480/

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