在android上创建新数据库之前检查现有数据库的最佳方法是什么

时间:2013-07-24 07:14:56

标签: android database

我为我的Android应用程序创建了一个包含静态数据的数据库,并且不需要更新/删除功能,因此当应用程序启动时,我想检查数据库是否存在,如果不存在则执行我的dbAdapter类。我知道它是一个简单的if语句,但我只是想知道查询db是否存在的最有效方法。

2 个答案:

答案 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;
  }