DB4O закрыть () стереть БД?
Я использую 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();
}
Я могу зациклить на arraylist и контакты там, я могу напечатать их имена и другие поля. Но теперь, если я закрою де БД:
mainDB.close();
Если я снова открою его с тем же кодом, то внутри больше ничего не будет, contacts.size() вернет 0. Что не так? Любая идея? Заранее спасибо...
2 ответа
Если вы попытаетесь выполнить запрос SODA, а не запрос, например, это сработает?
Каков результат Environment.getExternalStorageState()? Там может быть проблема с DIR. Что произойдет, если вы попытаетесь использовать Context.getExternalFilesDir () в качестве каталога или getExternalStoragePublicDirectory()?
Что произойдет, если вы используете этот каталог при открытии контейнера?
ctx.getDir ("data", 0) + "/" + "db.file";
где ctx - контекст приложения.