アクティビティ状態の保存に関連する問題が発生しています。ここSO)でたくさんの質問を検索して読みましたが、質問に対する答えを得ることができませんでした。
Activity
Aと2Fragments
があります。 Activity
Aは、Fragments
によって示されるデータを保持します。設定Intent
用に新しいActivity
を起動すると、Activity
Aは一時停止(破棄されない)、onPause()
およびonSaveInstanceState()
メソッドが呼び出されるので、すべてのデータをonSaveInstaceState()
に保存します。
戻るボタンを使用して設定から戻ると、Activity
Aが再び表示されますが、Activity
が破棄されなかったため、onCreate()
メソッドが呼び出されず、代わりにonResume()
メソッドが呼び出されましたが、Activity
Aの変数の状態が失われ、onSaveInstanceState()
に保存したBundle
にアクセスできません。onCreate()
は呼び出されません。
では、onSaveInstanceState()
は、画面を回転させるときにのみ役立ちますか? onSaveInstanceState()
に保存したすべてのデータにアクセスするにはどうすればよいですか?または、後でonResume()
でアクセスするために、ファイルまたはSharedPrefs
に保存する必要がありますか?
これは役に立ちますか?
1。 getIntent().putExtras()
でonStop()
を使用して、データをアクティビティのバンドルに保存します。
2。次に、getIntent().getExtras()
のonResume()
を取得します。
そして、バンドルにアクセスする前にnullチェックを行う必要があります:)