【问题标题】:onBackPressed() but Activity finished(), then onCreate(), onResume(). Cannot exit apponBackPressed() 但 Activity finished(),然后是 onCreate(),onResume()。无法退出应用
【发布时间】:2015-09-23 11:24:16
【问题描述】:

安卓 2.3.6
重现步骤。 转到活动。
重启手机。 单击返回按钮。 什么都没发生。实际上活动再次重新创建,然后恢复调用()所以无法退出应用程序。它只是保持不变。 这是什么原因造成的。我已选择该应用程序作为默认应用程序启动器,所以也许这与它有关。

问题是这怎么可能不关闭活动?我正在做背压,我也在做一个finish()。我在 onResume() 中有日志语句,所以我认为它不会被重新启动。重新启动执行此操作的手机是什么意思。否则它会起作用。

 @Override
 public void onBackPressed() {
        super.onBackPressed();
        finish();


    }
}

更新:会立即重新创建活动。 onCreate(), onResume()。所以活动停止了,但由于某种原因它没有离开。这是清单中的活动意图过滤器:

       <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.HOME" />
        </intent-filter>

这有什么让我无法退出应用的原因吗?

【问题讨论】:

  • 你能把你的活动代码发给我吗?因为根据您与回压相关的问题,可以通过我发送给您的代码来解决
  • 我已经更新了。所以它确实关闭了活动。我看到 onPause() 但随后重新创建。我看到 onCreate(),onResume()。问题是它为什么要重新创建它。为什么不直接带我回到应用程序屏幕?
  • 你能发送代码sn-ps吗?我没有得到你的问题,为什么你需要编写意图过滤器?
  • 我的问题是为什么要重新创建活动?什么会导致这种情况?为什么不直接退出应用程序?
  • 在设备重启时发生。 Activity 被移除,但又重新启动。

标签: android


【解决方案1】:

试试下面的代码,希望对你有帮助。

ActivityCompat.finishAffinity(Youractivity.this);
finish();

【讨论】:

  • 请解释为什么这是必要的。我看不出重新创建活动的任何原因?我已经更新了我的清单。我确实选择了该应用程序作为默认应用程序。所以也许这意味着它会重新启动?我不知道。为什么通常在操作系统重启后?
  • 以上代码将关闭或完成堆栈中的你的活动。
  • 它没有用。问题是活动被重新创建()和启动()。这发生在设备重启后。
  • 每次点击返回查看 onCreate(), onresume() 之前我到达 onStop()。
【解决方案2】:

请尝试下面的代码,希望它对你有用

/**
     * This method is use to handle back key event
     */
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            finish();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

【讨论】:

  • 这可能有效,但我仍然想知道为什么我的活动会被重新创建。它确实停止了活动。我看到了 onPause()。然后它重新创建我看到 onCreate()、onResume()。问题是为什么?为什么在 onBackPressed() 和 finish() 之后会重新创建活动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多