0

複雑なアプリケーションがあります。アプリケーション クラスと、共通のアクティビティからインテントとして開始された多数のアクティビティ クラスです。

ログによると、プロセスは死んでいます。アプリを実行し、ホームに移動し、他のアプリをたくさん起動してから、アプリに戻ると発生します。

ログには、次のように表示されます。

10-25 12:11:08.195: I/ActivityManager(2492): プロセス my.awesome.app (pid 20860) が停止しました。

my.awesome.app は、アプリの再起動時にメイン アクティビティの onCreate() メソッドを通過します。

ただし、正しい画面に誘導するインスタンス変数は、アプリが終了したときの値を保持していないため、間違った画面に行き着きます。実際には、アプリがシステムによって殺され、その後生き返ったので、アプリがそれほど死んでいないことを願っています.

コードを見ると、onSaveInstanceState()/onRestoreInstanceState() メソッドが表示されないので、それらを提供する必要があると確信しています。

問題は、どのアクティビティが onSaveInstanceState()/onRestoreInstanceState()/自分が行ったことに反応する必要があるかということです。

たとえば、私のアプリケーション クラスは、アクティビティを実行するスレッドを開始するアクティビティ クラスを開始し、それ自体がインテントを介して別のアクティビティを実行しています。

関連するすべてのクラスが onSaveInstanceState()/onRestoreInstanceState() を提供/対応する必要がありますか? 間違った画面に移動する不適切な値を検出しているので、それは単なる Application クラスですか?

4

1 に答える 1

0

onSave/onRestoreInstanceState は、実際にはアプリケーション全体の設定用ではありません。単一のアクティビティに固有の設定用です。

プロセスが強制終了された後に常に特定のアクティビティに戻りたい場合は、おそらく最後の開いた状態を設定に保存してから、メインのランチャー アクティビティの onCreate で、設定を保存しました。

于 2012-10-25T21:09:43.050 に答える