Kindle Fire底部有一个栏,包括一个“主页”按钮和一个“后退”按钮。
当我点击“后退”按钮时,我的应用程序的“onPause()”事件被调用。
当我点击“主页”按钮时,我的应用程序崩溃了。将显示一个Android对话框。它说我的应用程序意外停止了。我收到了一个“强制关闭”按钮。
Sooooo我需要处理哪些事件来防止这种情况发生。这只发生在我的应用程序上,而不是我下载的那些,所以是的,这是我,哈哈。
修改的
根据this web page,我向应用添加了事件和祝酒,以便了解事情是如何运作的。当我单击Back按钮时,我看到onPause(),onStop()和onDestroy()方法产生的toast。当我点击主页按钮时,没有祝酒,只有崩溃。
解决
Akhil建议我看一下logcat。我没有运行模拟器,因为我的机器对Android开发似乎不够强大(或者我对模拟器的期望太高);启动它需要永远。无论如何,在弄清楚如何运行模拟器之后(并且第一次看logcat,哈)我看到我抛出了与序列化相关的异常。我现在要解决它。谢谢Akhil在正确的方向踢了一脚!
啊,当我点击Home时,模拟器 显示 onPause() toast,所以现实仍然按预期运行。
FINAL
该错误与我为使 onSaveInstanceState(Bundle savedInstanceState)方法工作而添加的序列化有关。基本上,我的应用程序(以及我转换为android的旧游戏)不可序列化,因此 onSavedInstanceState()中的此代码将无法编译:
savedInstanceState.putSerializable(GAME, game);
'游戏'是无害的,所以我在Game的类定义中添加了“implements Serializable”。但是,我忽略了将相同内容添加到Game中的私有类中。这就是引起异常的原因。
答案 0 :(得分:0)
由于安全漏洞,无法在Android中拦截主页按钮。可用的选项是覆盖按下主页按钮并关闭应用程序时调用的onStop: -
@Override
protected void onStop()
{
super.onStop();
//do whatever you want here
}
答案 1 :(得分:0)
当您点击“后退”按钮时,系统会调用您应用的“onPause(), onStop(),onDestroy()
”事件。
点击“主页< / strong>“按钮,您的应用”onPause(), onStop()
,“将调用事件。
(这是一般情况,假设)
将日志语句放在onPause(), onStop()
中,看看你收到错误的位置。