1

Activity A開く がありますActivity B。B のライフサイクル中に、後で使用するために重要なデータが大量に作成されます。私が去るActivity Bと、それは破壊されます。ユーザーが次に B を開いたときに、その重要なデータが復元されることを望みます。

問題は、その重要なデータをどのように保存するかです。

私はいくつかの仮定を持っていました:

  1. 共有設定 ( context.getPrecerence(MODE_PRIVATE))。プリミティブ型しか保存できないため、これは適切なオプションではありません。java.io.Serializable オブジェクト (または少なくともParcelable) を保存する必要があります。

  2. 静的変数 - オプションではありません。ユーザーが他のアプリに移動したときに JVM がプロセスを破棄しても、データを残しておきたい。

  3. Context.openFileOutput(). アクティビティに入る/終了するたびに I/O を行っても問題ありませんか?

他の何か?

4

3 に答える 3

1

を使用して SharedPreference に保存できますgson.jar。これに関連するこの回答を参照してください

于 2013-06-29T12:21:36.433 に答える
0

データがユーザー固有の場合は、データベースを使用できます。ユーザーが戻ってくるたびにデータベースにアクセスできます。

または、Bundle を使用できます (OnSaveInstance(Bundle) を使用)。

この回答はバンドルで役立ちます

于 2013-06-29T12:23:34.453 に答える
0

単に設定を変更してデータを保持したい場合は、onSaveInstanceState(Bundle)探しているものです。それ以外の場合は、データベースを使用してください。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

于 2013-06-29T12:24:46.140 に答える