Kindle Fire の下部には、「ホーム」ボタンと「戻る」ボタンを含むバーがあります。
「戻る」ボタンをクリックすると、アプリの「onPause()」イベントが呼び出されます。
「ホーム」ボタンをクリックすると、アプリがクラッシュします。Android ダイアログ ボックスが表示されます。アプリが予期せず停止したと表示されます。「強制終了」ボタンが表示されます。
これを防ぐためにどのイベントを処理する必要がありますか。これは、ダウンロードしたアプリではなく、私のアプリでのみ発生するので、そうです、それは私です、笑。
編集
この Web ページに従って、物事がどのように機能するかについての洞察を得るために、イベントとトーストをアプリに追加しました。[戻る] ボタンをクリックすると、onPause()、onStop()、および onDestroy() メソッドによって生成されたトーストが表示されます。ホーム ボタンをクリックすると、トーストは表示されず、クラッシュするだけです。
解像度
Akhil は、logcat を見ることを提案しました。私のマシンは Android 開発には不十分なように思われるため (または、エミュレーターに期待しすぎている可能性があります)、エミュレーターを実行しません。起動するのに永遠にかかります。とにかく、エミュレーターを実行する方法を見つけた後 (そして初めて logcat を見て、ハ)、シリアライゼーションに関連する例外をスローしていることに気付きました。私は今それを解決するために出発します。正しい方向へのキックをありがとう Akhil!
ああ、ホームをクリックすると、エミュレーターはonPause()トーストを表示したので、現実はまだ期待どおりに機能しています。
最後の
エラーは、onSaveInstanceState(Bundle savedInstanceState)メソッドを機能させるために追加したシリアライゼーションに関連していました。基本的に、私のアプリ (および Android に変換した古いゲーム) はシリアライズ可能ではなかったため、onSavedInstanceState()のこのコードはコンパイルされませんでした。
savedInstanceState.putSerializable(GAME, game);
「game」は無害なので、Game のクラス定義に「implements Serializable」を追加しました。ただし、ゲーム内のプライベート クラスに同じものを追加することを怠りました。これが例外の原因でした。