【问题标题】:App crashes on back button / Activities & Intents应用程序在返回按钮/活动和意图上崩溃
【发布时间】:2026-02-24 13:15:01
【问题描述】:

我有一个启动新活动的 android 应用程序

Intent startAuthorization = new Intent(AndroidActivity, AuthorizeUser.class);       
startActivityForResult(startAuthorization,4711);

当新活动完成时(单击确定按钮)我调用

setResult(RESULT_OK, returnResult);
finish();

效果很好。如果用户没有单击确定按钮,而是使用手机的返回按钮(此箭头指向左侧),应用程序将强制关闭。我在我的方法 onActivityResult 的第一行设置了一个断点,但调试器永远不会停在那里。我不知道问题出在哪里 - 我怎样才能找到?有没有我必须重写的方法来处理这个后退按钮?

【问题讨论】:

  • 能否粘贴应用程序崩溃时的 logcat 输出?应该有一个 Java 异常,向我们展示有关您的应用强制关闭的原因的更多详细信息。
  • 覆盖后退按钮行为的方法称为onBackPressed()。我的怀疑是你以前的活动被破坏了,当你按下时,堆栈上没有那个活动,而是一个导致崩溃的空指针。不过,一些日志会有所帮助。这是在developer.android.com/reference/android/app/… 的 onBackPressed() 的官方描述

标签: android android-intent


【解决方案1】:

如果您没有找到更好的解决方案,请尝试此方法。 覆盖 onKeyDown 事件以防止您的应用在按下返回按钮时返回

public boolean onKeyDown(int keyCode, KeyEvent msg){
    if((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_HOME)
        || (keyCode == KeyEvent.KEYCODE_CALL))
        return false;
    else
        return true;
}

【讨论】:

    最近更新 更多