0

我正在使用 db4o 在 android 应用程序中存储不同的对象。我从服务器获取 json 内容,然后将它们放入存储在 db4o 文件中的对象(此处为联系人)。

ObjectContainer mainDB = Db4oEmbedded.openFile(dbConfig(), DB_MAIN);
mainDB.store(aContact);

现在,如果我直接进行查询以从数据库中取回它们,它就可以工作。

try {
ObjectSet<Contact> result = db.queryByExample(Contact.class);
contacts = new ArrayList<Contact>(result);
} catch (Exception e) {
e.printStackTrace();
}

我可以在数组列表上循环,并且联系人在那里,我可以打印他们的姓名和其他字段。但是现在如果我关闭 de db :

mainDB.close();

如果我用相同的代码重新打开它,里面就什么都没有了,contacts.size() 返回 0。怎么了?任何想法?提前致谢...

4

2 回答 2

1

如果您尝试 SODA 查询而不是 querybyexample 是否有效?

于 2010-11-24T16:40:35.640 回答
0

Environment.getExternalStorageState() 的结果是什么?目录可能有问题。如果您尝试将 Context.getExternalFilesDir() 作为目录或 getExternalStoragePublicDirectory() 会发生什么?

如果在打开容器时使用这个目录会发生什么?

ctx.getDir("数据", 0) + "/" + "db.file";

其中 ctx 是应用程序上下文。

于 2010-11-26T00:19:09.230 回答