在Android App中,我创建了方法saveItem()
以将Media
对象持久保存到数据库。尽管使用SQLiteDatabase.getWritableDatabase()
并出现以下异常,但此操作仍会失败:
SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
这是我的方法:
public void saveItem(Media media) {
// Gets the data repository in write mode
SQLiteDatabase db = dbHelper.getWritableDatabase();
// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
values.put(MediaContract.MediaEntry.COLUMN_NAME_ID, media.getId().toString());
values.put(MediaContract.MediaEntry.COLUMN_NAME_TITLE, media.getTitle());
values.put(MediaContract.MediaEntry.COLUMN_NAME_TEASER, media.getTeaser());
values.put(MediaContract.MediaEntry.COLUMN_NAME_TYPE, media.getType());
values.put(MediaContract.MediaEntry.COLUMN_NAME_THUMB_URL, media.getThumbnail_url());
values.put(MediaContract.MediaEntry.COLUMN_NAME_DATA, new Gson().toJson(media.getData()));
values.put(MediaContract.MediaEntry.COLUMN_NAME_UPDATED_AT, dbHelper.convertFromDateTime(media.getUpdated_at()));
db.insert(MediaContract.MediaEntry.TABLE_NAME, null, values);
}
我观察到,这种例外似乎不是每次都出现。
你可以给我一个暗示吗?