我正在使用db4o在Android应用程序中存储不同的对象。我从服务器获取json内容,然后将它们存储到我存储在db4o文件中的Objects(这里是联系人)中。
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();
}
我可以循环播放arraylist并且联系人在那里,我可以打印他们的名字和其他fiels。但现在如果我关闭de db:
mainDB.close();
如果我用相同的代码重新打开它,那里面就没有了,contacts.size()会返回0。 怎么了?任何的想法?提前谢谢......
答案 0 :(得分:1)
如果你尝试使用SODA查询而不是查询,那么它有效吗?
答案 1 :(得分:0)
Environment.getExternalStorageState()的结果是什么? dir可能存在问题。 如果您将Context.getExternalFilesDir()作为目录或getExternalStoragePublicDirectory()尝试会发生什么?
打开容器时如果使用此目录会怎样?
ctx.getDir(“data”,0)+“/”+“db.file”;
其中ctx是应用程序上下文。