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