0

以下のコードを使用すると、EditTextfields に入力されたテキストと選択されたスピナー項目が復元されますか?

    @Override
    protected void onPause(){ 
        super.onPause();

    }


    @Override 
    protected void onResume(){ 
        super.onResume(); 

    }

または、現在の値を保存してから、アクティビティが再開されたときに復元するように指示する必要がありますか? これらのメソッドが含まれていない場合にエミュレーターを使用していて、ホームに戻ってアプリを再度実行すると、常に以前の状態にロードされるため、質問はこれが実際にアンティヒングを行うかどうかです。

4

4 に答える 4

1

いいえ、このコードは何もしません。これらのメソッドをオーバーライドしていますが、親の実装を呼び出すだけの実装を提供しています。これは、そもそもそれらをオーバーライドしないのと同じです。

一時停止/再開時に状態を保存/復元する必要はありません。状態の保存を手動で行う必要がある唯一の理由は、アプリケーションが強制終了された後でも状態を復元したい場合です。

于 2012-04-27T23:16:22.060 に答える
1

いいえ、これは実際にはスーパークラス onPause() と onResume() を呼び出しただけで、他には何もしていません。アプリが一時停止されていても、アクティビティ スタックで待機しているため、編集ボックスの値はそこにとどまります。ただし、一時停止したアクティビティが Android によって強制終了される可能性があり、データが失われます。したがって、これを回避するには、それらを onPause で保存し、onResume で復元する必要があります。

于 2012-04-27T23:18:34.223 に答える
0

アプリはまだ強制終了されていないため、スピナーでの値は同じです。まだメモリに一時停止状態を置いているだけです。アプリが破棄された場合、スピナーの値は onCreate メソッドと開始時の値に戻ります。

各メソッドの機能については、こちらをご覧ください --> https://developer.android.com/reference/android/app/Activity.html

于 2012-04-27T23:20:13.467 に答える
0

onDestroy()が呼び出されたときにのみ状態を保存する必要があります。これは、戻るボタンを使用するか、OS がActivity停止状態のときに OS が強制終了した場合にのみ発生します。

部分的に隠れると一時停止しますActivityが、完全に隠れると停止します。

再びスタックの一番上に来ると、再開または開始します。

Log各イベントが発生したときに にメッセージを書き込んで実験するLogCatと、いつ、なぜ呼び出されたのかを確認できます。

于 2012-04-27T23:21:11.923 に答える