2011-02-10 33 views
0

私はsharedPreferencesを使用して、私が定期的にアクセスする単純なデータをいくつか保存しています。私は後でprefs.getAll()とのprefsにアクセスしようとしたときにSharedPreferences.Editor(私はcommit()と呼ぶ)を使って何かを "置く"ことに気付いた。SharedPreferencesが更新されませんか?

私のアプリを閉じてもう一度起動すると、奇妙なことに表示されます。それは私のアプリが実行されている間、prefsがさわやかでないようです。それは設計によるのですか?何がありますか?

ところで、私はeditor.remove("key")を実行しているときに同じ動作に気付いています。私は何かを削除して(commit()に電話します)、getAll()に電話すると、削除されたアイテムはまだMapに返されます。もう一度削除しようとすると、アプリの強制終了となります。

私は何か間違っている必要があります。どんな助けもありがとうございます。

おかげで、 ボビー

+1

使用しているコードを投稿できますか? – Dalmas

答えて

0

あなたはSharedPreferences正しい方法を使用する場合、これは発生しません。あなたが複数のプロセス間SharedPreferencesを使用しようとしている偽(はい、それは本当に、戻り値を持たない)、または

    1. commit()戻り、どの:私はこの問題が発生したときに考えることができる唯一の2つのシナリオがあればありますです。
  • +0

    こんにちは、私はリターンを確認しており、それは本当です。私はあなたが "複数のプロセス間で"何を意味するのか分かりません - 私はそれが私のアプリに当てはまるとは思わない。私のアプリを終了して元に戻っても、すべての変更がそこにあります。 – Bobby

    +0

    それから、あなたは別の場所で何か間違ったことをしているように思えますし、もっとコードを提供しなければなりません(LadaRaiderが既に指摘したように)。 – mreichelt

    0

    わかりました。私は、奇妙なダイアログの中でprefsのリストを表示していました。ダイアログの作成が一度だけ呼び出されてしまったので、私の新しい値で更新されることはありませんでした。ガー!

    ありがとうございました!

    関連する問題