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 - контекст приложения.

Другие вопросы по тегам