Първа публикация тук, така че моля, изтърпете ме, ако сбъркам нещо.
Опитвам се да съхранявам изображения за приложение в база данни на 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 и кога просто да отида за файлове.
Благодаря! :)