2013-07-24 25 views
0

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

+0

我认为,如果您在应用程序启动时检查数据库中的记录数会更好。为此,通过从db中选择所有数据并在光标上调用getCount()方法来获取游标。 – Santhosh

回答

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; 
} 
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; 
    } 
相关问题