0

これは void onSaveInstanceState(Bundle saved) と基本的な Java の概念に関するものです。

このメソッドを呼び出す前に、Bundle オブジェクトを作成する必要があります。その後、このメソッドに渡されます。次のように作成されて渡されるとしましょう:

Bundle savedInstanceState= new Bundle();
onSaveInstanceState(savedInstanceState);

このメソッドは、そのバンドルにデータを保存します。ただし、(名前と値のペアを追加した) そのバンドルは返しません。

public void onSaveInstanceState(Bundle saved){
. . . //data added to the bundle named saved
} 

そのため、パラメーター変数として宣言された、保存されたバンドルは、メソッド内でのみスコープを持ちます。メソッド内で save に追加されたデータは、savedInstanceState には追加されません。メソッドも何も返していません。

では、このメソッドがそれ自体の外側のバンドルを変更せず、何も返さない場合、このメソッドの重要性は何ですか?

また、onCreate に渡されるバンドルは、以前に保存されたアクティビティの凍結状態を保持するとも言います。このバンドルは onSavedInstanceState() の処理から来ているようですが、メソッドは何も返さず、渡されたバンドルの値をそれ自体の外部で変更しません。私は混乱しています。

誰かがこの概念を理解するのを手伝ってくれるなら、私は感謝します. はい、Activity API で提供されているリファレンスを読みました。

4

2 に答える 2