これまでのところ、私はそれが最後では
好みのためだから、あなたが好きなためSharedPreferences
を使用するために歓迎され、私はそのためにSharedPreferencesを使用してはならないことを読んでいます。ユーザーの好みに合わせてに最適化されています。
もそれはそれが唯一のselect scenariosです
安全ではないですので、私は、savedInstanceStateバンドルを使用する必要があります。たとえば、ユーザーが少し気を散らした場合に、ユーザーが完了するために部分的に記入されたフォーム値を保持するためです。これは長期的なストレージソリューションではありません。
データをOnPauseにデータベースまたはファイル(私の場合は十分です)に保存し、OnResumeで復元することをお勧めします。
データの保存のためのシナリオと解決策は、データの性質とユーザーのやりとりによってさまざまです。あなたがチャット・メッセージを使ってチャット・アプリで行うことは、ユーザーがタイプしてチャット・サーバーから取得したものは、ワープロとはまったく異なります。これは、ゲーム内で行うこととは大きく異なります。など、あなたがストリーミングメディアプレーヤーで何をすべきかは非常に異なること
アプリは唯一のあなたはこれを強制することは非常に具体的な措置を講じない限り、間違っているMainActivity
を介して入力することができます。ユーザーがあなたのアプリにいて、別のアプリに移動した場合(たとえば、HOMEを押す)、アプリがバックグラウンドのときにアプリの処理が終了することがあります。ユーザーがあなたのアプリにかなり早く戻った場合(例えば、30分以内に)、概要画面/最近の仕事リストなどで、Androidはユーザーを最後の状態に戻そうとします。あなたの活動のいずれかになる可能性があります。
だから、私はそのOnResumeメソッドの状態を復元すると思います。
各アクティビティはそれぞれ独自の状態を担当します。その状態のいくつかはよく共有される(例えば、シングルトンPOJOキャッシュマネージャ)。しかし、活動は以前に州が設定されていると仮定すべきではない。
これは、私のアプリのすべてのアクティビティのOnPauseメソッドに自分のアプリケーションの状態を保存する必要があるということですか?
また、あなたのアプリで何をしているかによって大きく異なります。答えは、「ユーザーがボタンを押したときに状態を保存する」または「ユーザーがスワイプしたときに状態を保管する」または「サーバーから入ってくるMQTTメッセージから状態を取得するときに状態を保管する」などです。私は彼が
私見を返し、ユーザーが自分のアプリケーションを離れた場合にのみ、状態を保存し、それをものを復元したい
、あなたは一般的に、ときの状態変化状態を保存します。適切なキャッシングが与えられている場合、「復元」は非常に高速ですが、アプリケーションがアクティブな状態で使用されていて、大量のデータが大量にあり(またはキャッシュから値が取り出される)、プロセスが終了して再び開始された場合、
私はあなたがそれを無視し、SharedPreferencesで行うべきだと思います。シンプルでプロセスを速くします。 –
共有設定を使用できないのはなぜですか?このようなことはうまくいきます。 –