我一直在谷歌搜索一种将 abundle
转换为适合作为BLOB
类型存储在数据库中的字符串的方法。我发现了很多将其序列化为文件的示例,但没有提及如何将其放入字符串或字节数组中。谁能给我一个例子来说明这是如何做到的?
我正在开发一个应用程序,该应用程序将插件用于自定义 UI 组件,并希望在插件中调用配置活动,传递存储在数据库中的一组配置选项。该活动将返回带有更新选项的捆绑包,然后我需要将其保存回数据库。
如果有人能指出我正确的方向,我将不胜感激。
您的第一步是创建一个表来放置它。在这种情况下,应该做一些基本的事情。
CREATE TABLE bundles (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
value BLOB);
然后,您将需要一种插入 的方法Bundle
,如下所示:
private void put(SQLiteDatabase db, String name, Bundle bundle) {
ByteArrayOutputStream valueStream = new ByteArrayOutputStream();
try {
ContentValues rows = new ContentValues();
rows.put("name", name);
Parcel p = Parcel.obtain();
bundle.writeToParcel(p, 0);
valueStream.write(p.marshall());
rows.put("value", valueStream.toByteArray());
db.insert("bundles", null, rows);
valueStream.close();
} catch (IOException e) {
Log.e("error writing object", e.toString());
}
}