Kindle Fire 在底部有一个栏,其中包括一个“主页”按钮和一个“返回”按钮。
当我单击“返回”按钮时,我的应用程序的“onPause()”事件被调用。
当我单击“主页”按钮时,我的应用程序崩溃了。将显示一个 Android 对话框。它说我的应用程序意外停止。我看到了一个“强制关闭”按钮。
Sooooo 我需要处理什么事件来防止这种情况发生。这只发生在我的应用程序上,而不是我下载的应用程序,所以是的,是我,哈哈。
编辑
根据这个网页,我在应用程序中添加了事件和祝酒词,只是为了深入了解事情的运作方式。当我单击后退按钮时,我看到由 onPause()、onStop() 和 onDestroy() 方法生成的 toast。当我单击主页按钮时,没有祝酒词,只有崩溃。
解析度
Akhil 建议我查看 logcat。我不运行模拟器,因为我的机器似乎不足以进行 Android 开发(或者我对模拟器的期望过高);启动它需要很长时间。无论如何,在弄清楚如何运行模拟器之后(第一次看logcat,哈)我看到我抛出了一个与序列化相关的异常。我现在要去解决它。感谢 Akhil 朝着正确的方向踢球!
啊,当我单击 Home 时,模拟器确实显示了onPause() toast,所以现实仍然按预期运行。
最终的
该错误与我为使onSaveInstanceState(Bundle savedInstanceState)方法工作而添加的序列化有关。基本上,我的应用程序(以及我转换为 android 的旧游戏)不可序列化,因此onSavedInstanceState()中的这段代码无法编译:
savedInstanceState.putSerializable(GAME, game);
'game' 是无害的,所以我在 Game 的类定义中添加了“implements Serializable”。但是,我忽略了将其添加到 Game 中的私有类中。这就是导致异常的原因。