0

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

4

2 回答 2

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;
}
于 2013-07-24T07:26:28.987 回答
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;
  }
于 2013-07-24T07:56:50.703 回答