Первый пост здесь, так что, пожалуйста, потерпите меня, если я что-то не так.
Я пытаюсь хранить изображения для приложения в базе данных sqlite. Изображения должны храниться в виде больших двоичных объектов (это плохая идея?). Код для этого выглядит следующим образом:
public long createPicture(String title, byte [] thumb, byte [] imageData) {
ContentValues data = new ContentValues();
data.put(T_KEY_TITLE, title);
data.put(T_KEY_CONTENT, imageData); // <-- blob in the db
data.put(T_KEY_THUMB, thumb);
// db is an SQLiteDatabase
return db.insert(TABLE_PICS, null, data); // <-- Crash occurs on this line
}
Этот код по большей части работает отлично, но когда я пытаюсь сохранить большие изображения (5 мегапикселей со встроенной камеры), он вылетает. Он не только дает сбой, но и портит базу данных, так что приложение вылетает всякий раз, когда я пытаюсь запустить его снова.
Итак, мой вопрос: есть ли способ обойти это, или я должен поместить большие изображения в виде файлов и просто сохранить путь? Кроме того, я хотел бы получить некоторые общие рекомендации о том, когда использовать sqlite, а когда просто обращаться к файлам.
Спасибо! :)