2011-10-23 5 views
0

私は現在、ユーザーによって自己占有されているlistviewを持っています。ユーザーがアクティビティを離れて戻ったときに、ユーザーが追加したすべてがまだlistviewにあるようにしたいと思います。私はonSaveInstanceStateについて読んでいますが、それが正しい方法であるかどうかはわかりません。どんな助けでも大歓迎です。ありがとう。Android - アクティビティの状態とリストの表示アイテムを保存します

答えて

0

ユーザーがデータを入力していて、そのデータがどこかにストアされていると仮定しています(SQLite、クラウドなど)。ユーザーが入力した内容(「新規」をクリックして新しいリスト項目を入力し、データベースに移動してリストを更新するとすぐに)を積極的に保存することをおすすめします。したがって、アプリケーションonResume()が呼び出されると、そのソースからデータを取得し、リストビューを再設定することができます。 SharedPreferencesに一時的に保存するのは煩雑です(項目のリストについて)。

0

あなたが必要とするものではありません。 onSaveInstaceStateは、ユーザーが明示的にリソースを終了した場合ではなく、リソースを再利用するためにシステムがアクティビティを強制終了する前にインスタンスを保存します。

ユーザーが入力するたびに活動状態を保存することを忘れた場合は、同じ状態を維持するために、コンテンツプロバイダを使用してファイル/共有プリファレンスにデータを保存する必要があります。 1つのリストビューのアイテムのローカルデータを保存するだけであれば、非常に簡単で直感的なので共有設定を使用することをおすすめします。それらについてはhereを読んでください。

0

離脱する間にアクティビティが破棄されない場合、データはユーザーが残した場所にある必要があります(再開時に再初期化を行わない限り)。しかし、Androidは必要に応じてリソースを解放する可能性があるため、それを期待することはできません。非実行アクティビティは、そのような行為の犠牲になる可能性があります。

したがって、データを永続ストレージに保存する必要があります。それがこのアクティビティのためのものであり、それがほんの少量のデータであるなら、SharedPreferencesは良いと簡単な解決策です。 onPause()に保存すると、onResume()に読み込まれます。アクティビティを前面に出して電話が切れると、データが失われます。

ファイルを使用することはお勧めしませんが、SQLiteについて考えるよりも、異なるビュー、処理、並べ替え、フィルタリングなどの方法でデータにアクセスする必要がある場合はこの方法をお勧めします。

関連する問題