0

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 中的私有类中。这就是导致异常的原因。

4

2 回答 2

0

由于安全漏洞,无法在 android 中拦截主页按钮。可用的一个选项是覆盖 onStop,当您按下主页按钮并关闭应用程序时调用它:-

@Override
    protected void onStop() 
    {
        super.onStop();
        //do whatever you want here
    }
于 2012-04-14T16:07:45.510 回答
0

当您单击“返回”按钮时,您的应用程序的“ onPause(), onStop(),onDestroy()”事件将被调用。

当您单击“主页”按钮时,您的应用程序的“ onPause(), onStop(),”事件将被调用。

(这是一个一般场景,假设)将日志语句放入您的onPause(), onStop()并查看您在哪里得到错误。

于 2012-04-14T16:18:55.390 回答