0

私はdb4oを使用してAndroidアプリケーションにさまざまなオブジェクトを保存しています。サーバーからjsonコンテンツを取得し、db4oファイルに保存するオブジェクト(ここに連絡)にそれらを取得します。

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

これで、DBからそれらを取り戻すために直接クエリを実行すると、機能します。

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

querybyexample ではなく SODA クエリを試してみるとうまくいきますか?

于 2010-11-24T16:40:35.640 に答える
0

Environment.getExternalStorageState() の結果は何ですか? dir に問題がある可能性があります。Context.getExternalFilesDir() をディレクトリとして試すか、getExternalStoragePublicDirectory() を試すとどうなりますか?

コンテナを開くときにこのディレクトリを使用するとどうなりますか?

ctx.getDir("データ", 0) + "/" + "db.file";

ここで、ctx はアプリ コンテキストです。

于 2010-11-26T00:19:09.230 に答える