2015-12-30 136 views
0

我已經知道如何創建SQLite數據庫創建數據庫。該點是數據庫文件僅在內部存儲(/數據/ {包名稱})在外部存儲

有沒有一種方法來正確的外部存儲上直接創建SQLite數據庫產生的?

+1

據我所知,'openOrCreateDatabase()''上接受SQLiteDatabase'一個完全合格的路徑,如的API等級8左右。請記住,外部存儲設備並不總是可用的(雖然現代的設備通常是可用)。如果外部存儲都成爲交易的中間不可用,你可能會得到數據庫腐敗的結果。 – CommonsWare

回答

2

您可以創建數據庫,如下所示:

private SQLiteDatabase db; 
private yourPath = "/mnt/sdcard/"; 

private SQLiteDatabase db = openOrCreateDatabase(yourPath + "sudoku.db", Context.MODE_PRIVATE, null); 

編輯你的方法:

private static Cursor query(String query) { 
    if (query != null) { 
     openDB(); 

     while (db.isDbLockedByCurrentThread()) { 
      // db in use, keep looping 
     } 

     Log.d("Query", query); 

     return db.rawQuery(query, null); 
    } else { 
     return null; 
    } 
} 

private static void openDB() { 
    if (db == null) { 
     db = SQLiteDatabase.openDatabase(yourPath + "sudoku.db", null, SQLiteDatabase.OPEN_READWRITE); 
    } 
} 
+0

非常感謝!我想弄清楚的唯一事情是:我需要我的輔助類?我通常創建SQLite數據庫的實例引用sqlite的輔助類 – tdmsoares

+0

@tdmsoares不,你不需要它。在上面編輯我的答案以顯示您可以使用的方法。 –