(私のアプリケーションのために)何をonPause()に保存し、何をonSaveInstanceState() に保存するかを決定しようとして、ヒントと明確なガイドラインのために SO 全体を調べました。
私が正しく理解していれば、onSaveInstanceState()は「実行時の変更」または「現在の状態」(それが何を意味するにせよ) を保存するのに最適であり、onPause()は「永続的な状態」(それが何を意味するにせよ) を保存するのに最適です。
アプリケーションで「永続的な状態」と「現在の状態」を構成するものを判断するのにまだ苦労しています。たとえば、ユーザー設定は明らかに永続的ですがonPause()
、ユーザーが変更したときに Android UI フレームワークによって常に自動的に保存される場合、それらを保存する必要がありますか?
クラス データ メンバーはonSaveInstanceState()に保存する必要がありますか? アプリケーションのすべてのクラスでこれを行う必要がありますか?
私は混乱しています。
onPause()
に保存する必要があるものと に保存する必要があるものの実例を挙げていただけますonSaveInstanceState()
か? つまり、デバイス構成の変更を除きます。
--
私の質問に答えた後、いくつかの新しい洞察:
- onSaveInstanceState
Bundle
は何にも書き込まれず、永続的ではありません。 - onSaveInstanceState の
Bundle
データは、アプリケーションが閉じられるまでメモリに保持されます。