0

これらの関数をアクティビティクラスで使用します:onSaveInstanceState onRestoreInstanceState onPause onCreate

ユーザーがアクティビティを開始するとonCreateが呼び出され、ユーザーが終了するとonPauseが呼び出されます。これまでのところ問題ありません。

ただし、ユーザーが電話を回転させると、onPauseonSaveInstanceStateonCreateが呼び出されます。onCreateの前にonRestoreInstanceStateを期待していました。これはなぜですか。UIデータがない場合は、どのように初期化を処理する必要がありますか?

4

1 に答える 1

3

onCreateの前にonRestoreInstanceStateを期待していました。

ドキュメントには、onRestoreInstanceState()次のように明確に記載されています。

このメソッドは、アクティビティが以前に保存された状態(ここではsavedInstanceStateで指定)から再初期化されるときに、onStart()の後に呼び出されます。ほとんどの実装は単にonCreate(Bundle)を使用して状態を復元しますが、すべての初期化が完了した後、またはサブクラスがデフォルトの実装を使用するかどうかを決定できるようにすると、ここで行うと便利な場合があります。

からのものでUIを初期化したい場合はBundleonCreate()自由に行ってください。

于 2012-04-28T23:24:56.990 に答える