我有一个在应用程序启动时创建的数据库。旨在下载文件并从该文件创建数据库。问题在于,每次我重新打开应用程序时,它都会下载文件并创建数据库。 MainActivity使用此代码段检查数据库的存在性
dbHelper = new DatabaseHelper(this);
if(!dbHelper.checkDataBase()) {
android.os.Debug.waitForDebugger();
dlPortTask = new DownloadTask(MainActivity.this);
dlPortTask.execute();
}
所以问题是当我重新打开主要活动时,数据库又重新创建了。因为每次活动主体打开时我都会创建一个新实例。然后检查数据库是否存在。我如何首先检查数据库,然后如果不存在创建数据库。我如何获取或检查是否存在现有数据库的实例。我的数据库构造函数和checkDatabase方法
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
DB_PATH = context.getDatabasePath(DB_NAME).getPath();
this.context = context;
}
public boolean checkDataBase() {
File DbFile = new File(DB_PATH + DB_NAME);
String databasePath = context.getDatabasePath(DB_NAME).getPath();
return DbFile.exists();
}
再次我可以调用checkDatabase(),但只能在mainactivity中实例化数据库之后。在创建新实例之前如何检查。我想这更多是软件设计原理的问题...任何帮助
答案 0 :(得分:0)
这是检查数据库是否存在的正确代码
if(!getDatabasePath(DatabaseHelper.DB_NAME).exists()) {
//then create databse
}
其中DB_NAME是数据库的名称,而DatabaseHelper是数据库类