何が起こっていますか:
- アプリを開き、ホームボタンを押してしばらくそのままにします。
- に移動し
Settings > Applications > Manage Applications > Running
、キャッシュされたバックグラウンド アプリのリストで自分のアプリを見つけて停止します。 - 次に、ホーム ボタンを押したまま、最近使用したアプリのリストから自分のアプリを選択して、もう一度実行します。
[注: これらの手順は、テスターが見ているのと同じ症状を強制する私の方法にすぎません。アプリを強制的に終了させるのではなく、通常通りにアプリに出入りするだけです。]
置いていたアクティビティで開きますが、状態が悪いです。最初の問題は、ユーザー情報を保持しているメモリがなくなったことです (これは、アプリが強制終了された場合に意味があります)。User クラスをシリアライズ可能にして、現在のユーザー オブジェクトを に格納しonSaveInstanceState
、それを にロードすることで解決しましたonCreate
。ClientConnectionManager
同様に、ネットワークを再び機能させるには、自分を再作成する必要がありました。
「リロードされた」アクティビティは正常に実行され、新しく作成されたアクティビティに移動して使用できますが、アプリを強制的に停止する前に作成されたアクティビティに戻るために戻るボタンを押すと、例外が発生します。ユーザー クラスが存在しません (明らかに unparcel を実行するときの ClassNotFoundException)。
なぜこうなった?アプリが強制終了されたが、再開時にどのアクティビティに戻るかをまだ知っている場合の正しい処理方法は何ですか? アプリが実行されていないが、完全にシャットダウンされていないこの状態の名前は何ですか?