2015-12-30 94 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不,你不需要它。在上面编辑我的答案以显示您可以使用的方法。 –