Activity
ユーザーのデバイスが回転したときに破棄されて再作成されることについて少し混乱しています。
私は読んでいて、そうすることの理論的根拠を理解しています(基本的に、ローテーション/言語/その他の変更時に何も「見逃し」ていないことを開発者に「強制」します)
ベスト プラクティスがそのように見られる場合は喜んで尊重しますが、次のような疑問が生じます。
ゲーム/アプリの状態を「記憶」して、画面が回転したときに、ユーザーが見ていたものを再生成するための何かを取得するにはどうすればよいですか?
私が見る限り、絶対にすべてが破棄され、基本クラスのコンストラクターが実行され、その中のすべての変数Activity
が「null」になっています。
「savedInstanceState」(Bundle
クラス)はそのデータを収集する場所だと思いますが、その周りの読み取りは、アプリがリソース不足で閉じられた場合にのみ使用されるようです(および他のいくつかの非常にまれなケース)
私は、savedInstanceState の目的を誤解または誤解していますか? Activity
ローテーション時に何も見逃さないように注意している場合、ベスト プラクティスを放棄する (を破棄する) のは賢明ですか? アドバイスをよろしくお願いします。
この質問はゲーム プログラミングに適用されることに注意してください (レイアウト XML は使用していません)。