我已经为我的Android应用程序创建了一个包含静态数据的数据库,并且不需要更新/删除功能,因此当应用程序启动时,我想检查数据库是否存在,如果不存在则执行我的dbAdapter类.我知道它是一个简单的if语句,但我只是想知道查询db是否存在的最有效方法.
干杯
我试图在首次安装时从资产数据库初始化我的应用程序的数据库。但是,在应用程序关闭之前它可以正常工作。当我再次打开应用程序时,它会调用createFromAsset(). 据我所知,问题在于我正在获取应用程序数据库的实例并使用资产数据库重写它。createFromAsset()仅当应用程序第一次安装时才需要调用我。
@Database(entities = {ActivitySession.class}, exportSchema = true, version = 1)
public abstract class ActivityPackageDatabase extends RoomDatabase {
private static ActivityPackageDatabase INSTANCE;
public static ActivityPackageDatabase getDatabase(final Context context) {
if (INSTANCE == null) {
synchronized (ActivityPackageDatabase.class) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
ActivityPackageDatabase.class, "appDB")
.createFromAsset("database/assetDB.db")
.fallbackToDestructiveMigration()
.build();
}
}
}
return INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)
以防万一有实体和 DAO 的示例
@Entity
public class SessionPhoto {
@PrimaryKey(autoGenerate = true)
public long id;
public long sessionId;
public String path; …Run Code Online (Sandbox Code Playgroud) java orm android android-room android-room-prepackageddatabase