6

7 つのアクティビティがあり、残りの間に前後のナビゲーション ボタンがあります。アクティビティは、editTexts、Spinners、textViews、TimePickers、DatePickers、およびチェックボックスで構成されます。

すべての UI が存在し、アプリケーション インスタンスのナビゲーションを通じて保存されるようにしたい。ただし、アプリケーションの終了時には、すべてデフォルトにする必要があります。

私の 8 番目のアクティビティは、すべての UI を収集し、電子メールに配置します。. 。ご参考までに

アクティビティが行き来するときにデータを保存する onSavedInstanceState と SharedPreferences の両方の方法について、私は多くのことを読みました。. .

どちらが私にとってより良いでしょうか?

4

2 に答える 2

13

データをどのように管理するかによって異なります。両方のオプション (およびそれ以上) が実行可能です。

  • 一度入力して、アプリが強制終了されてもデータを保持したい場合は、 を使用しますSharedPreferences
  • 別の時間 (つまり、数日後) に別の方法で再入力する必要がある揮発性データの場合は、 を使用しますonSavedInstanceState
  • 複数のデータセットを同じデバイスに保持する場合は、SQLiteDatabase
于 2011-05-05T17:13:22.370 に答える
12

SharedPreferences

  • 電話がオフになっていても、常に覚えておく必要があるものに使用します (例: アプリの設定画面で選択した設定)。

onSavedInstanceState

  • 画面上で現在選択されているタブなど、アクティビティの現在の状態に関することを記憶するために使用します。これにより、ローテーション後、またはメモリ不足のためにアプリが強制終了された場合に、同じ状態を再現できます。
  • に保存されたものはonSaveInstanceState再起動後に忘れられ、アクティビティの新しいインスタンスを開始するときに渡されないため、アクティビティの状態を記憶するためだけのものです

onRetainNonConfigurationInstance

  • これは、ロードに時間がかかるオブジェクトを保存するために使用し、電話機を回転させたときに再度ロードする必要がないようにします。
于 2011-05-05T17:24:42.467 に答える