我正在开发一个新闻阅读器应用程序,目前当该设备有互联网下载文章时,它会下载文章标题,文本,图像等,并将其全部存储到sqlite数据库中。这样,如果设备没有互联网或用户保存文章以供离线阅读,则仍可以查看文章内容。我的应用程序在下载文章时滞后,并且没有在列表视图中显示图像非常好。它非常波涛汹涌而且不好。存储此数据并快速可靠地访问数据的最佳方法是什么?另外我需要一个不需要图像网址的懒人装载器,有没有可以使用存储在SD卡上的图像?
我的下载方法包括启动后台服务以下载文章文本和图像,并更新sqlite数据库中的每个项目行,所有这些都在后台完成。如果需要,我也可以发布代码。谢谢。
答案 0 :(得分:3)
对于保存图像,我更喜欢将其直接保存在SD卡上,而不是保存在SQLite中。
我建议使用外部资料库下载图片和兑现,例如Universal Image Loader。
但如果您仍想将其保存到SQLite中,请转到:
设置表
CREATE TABLE " + DB_TABLE + "("+
KEY_NAME + " TEXT," +
KEY_IMAGE + " BLOB);";
插入数据库
public void addImage( String name, byte[] image) throws SQLiteException {
database.beginTransaction();
try {
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_IMAGE, image);
database.insert( DB_TABLE, null, cv );
} finally {
database.endTransaction();
}
}
提取
byte[] image = cursor.getBlob(1);
答案 1 :(得分:0)
我不建议您将图像存储在数据库中。相反,为什么不将图像保存在磁盘缓存中,并将密钥保存到数据库中的映像。尝试使用DiskLruCache。这很简单。顺便说一句,我不建议您将图像保存在数据库中,原因如下: