我为我的Android应用程序创建了一个包含静态数据的数据库,并且不需要更新/删除功能,因此当应用程序启动时,我想检查数据库是否存在,如果不存在则执行我的dbAdapter类。我知道它是一个简单的if语句,但我只是想知道查询db是否存在的最有效方法。
答案 0 :(得分:0)
使用openOrCreateDatabase
方法
public boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
}catch(SQLiteException e){
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}
答案 1 :(得分:0)
为什么不尝试只运行一次dbadapter,我的意思是首次安装应用程序时 我使用sharedpreferences只插入一次数据,只需这样使用它:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isFirstTime()) {
// insert data
}
}
private boolean isFirstTime()
{
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (!ranBefore) {
// first time
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
}
return !ranBefore;
}