私が理解する限り、onSaveInstanceState()
とonRestoreInstanceState()
メソッドは、アクティビティの状態が約onPause()
になる前に動的データを格納するためのものです。私は単純なActivity
ボタンをクリックしてそのテキストを変更するボタンを作った。私は自分の体に何もないと、これらのメソッドの両方をオーバーライドしました:onRestoreInstanceState()がオーバーライドされている間の状態の変化
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
私はhiddingだとアプリのホーム画面と背面に移動させることによって活性を回復します。アクティビティが復元されたとき、ボタンのテキストは、私が期待したようにデフォルトではありませんが、アクティビティをonPause()
に渡す前と同じです。 onRestoreInstanceState()
メソッドが空の場合はどうすれば動作しますか?
もっと奇妙なもの - 私はこれらの2つのメソッドが呼び出されているときにデバッグしようとしましたが、onRestoreInstanceState()
が呼び出されていないことに気付きました。
デバイスの向きを変更すると、受信したBundleをデータの復元に使用する必要がある場合にonCreate()が呼び出されるため、さまざまな状況が発生しています。私が望むのは、それらの2つの方法が働いている方法を見つけることです。そして、はい、ユーザーがボタンで入力することはできません、私は保存/復元方法を確認するために、デフォルトのテキストを変更しています。 – Eugene
@AndroidNoob: 'onRestoreInstanceState()'が呼び出される場合、 'onCreate()'は常に*呼び出されます。したがって、画面の向きを変更してください。 "保存/復元の方法をチェックするためにデフォルトのテキストを変更しています" - 次に、自分自身の "状態"を 'onSaveInstanceState()'に保存し、 'onRestoreInstanceState()'に復元する必要があります。 – CommonsWare
ご清聴ありがとうございます。 – Eugene