我有一个在应用程序启动时创建的数据库。它旨在下载文件并从该文件创建数据库。问题是每次重新打开应用程序时它都会下载文件并创建数据库。 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中实例化数据库之后。如何在创建新实例之前检查。我想这更像是一个软件设计原则的问题......任何帮助
这是检查数据库存在的正确代码
if(!getDatabasePath(DatabaseHelper.DB_NAME).exists()) {
//then create databse
}
其中DB_NAME是数据库的名称,DatabaseHelper是数据库类