1

Androidでは、アクティビティAから新しいアクティビティBを開始すると、AndroidはアクティビティAのすべての状態を自動的に保存します。したがって、アクティビティBからクリックして戻るかfinish()を呼び出すと、アクティビティAは開始時の状態に復元されます。アクティビティB(例:アクティビティAでのScrollViewの位置、またはProgressBarの値)。アクティビティAIには、タスクの進行状況を示すProgressBarがあり、アクティビティBから戻ると、ProgressBarが復元され、実行を継続します。

ここで必要なのは、アクティビティAからfinish()を呼び出すことです。Androidと同じようにアクティビティAのすべての状態を保存するにはどうすればよいですか(上記のようにProgressBarを含めます)。アクティビティAを再度開始すると、finish()を呼び出す前と同じようにすべてを復元でき、ProgressBarは実行を継続しますか?

アクティビティAをAndroidのスタックのようなものにプッシュしてから、ポップアウトできますか?誰もがこれを達成する方法を知っていますか?

4

4 に答える 4

3

戻るボタンをクリックしても、終了を呼び出さないでください。

代わりに、メソッド「moveTaskToBack(false)」を呼び出します。これにより、アプリケーションが「最小化」されます。次にアプリケーションを開くと、アプリケーションは前の状態で開きます。

于 2012-07-10T04:51:08.440 に答える
0

重要なのfinish()は、あなたの活動は「完了し、閉鎖されるべきである」と言うことです。完了していない場合は、を呼び出さないでくださいfinish()

于 2012-07-10T04:42:13.110 に答える
0

アクティビティAからアクティビティBに移動しても、AndroidはアクティビティAを強制終了しません。アクティビティAは引き続きバックグラウンドで動作します。ただし、Androidにメモリが必要な場合は、いつでも強制終了できます。

アクティビティの状態を保存するには、手動で行う必要があります。

良い答えのある同様の質問があります:インスタンス状態の保存を使用してAndroidアクティビティ状態を保存する

于 2012-07-10T04:46:02.743 に答える
0

アクティビティを終了してから、新しい構成をロードするためだけにアクティビティを再開する場合は、 finish()を呼び出す代わりに、アクティビティのrecreate()メソッドを呼び出すことができます。recreate()を呼び出すと、onSaveInstanceState()とonRestoreInstanceState()が呼び出され、以前の構成を復元するのに役立ちます。

詳細については、この回答をご覧ください:Androidアクティビティを再開するにはどうすればよいですか

于 2015-04-28T14:09:50.943 に答える