gpt4 book ai didi

Android:Sqlite 从大 blob 崩溃

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:47 24 4
gpt4 key购买 nike

第一次发帖,如有不妥请多多包涵。

我正在尝试将应用程序的图像存储在 sqlite 数据库中。图像应存储为 blob(这是个坏主意吗?)。这样做的代码如下所示:

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 以及何时只访问文件的一般指南。

谢谢! :)

最佳答案

对于存储图像,通常的最佳做法是将它们存储在外部(存储到 SD 卡或其他一些外部存储方式)。 getExternalStorageDirectory()将为您提供一个存储大文件的位置,或 getExternalFilesDir()如果您是 API 8 及更高版本。

数据库事务可能会出现许多错误(空间不足、事务超时等)。最好将图像的 URI 存储在数据库中,然后将实际图像放入外部位置。

关于Android:Sqlite 从大 blob 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com