在 AlertDialog.Builder 处于活动状态时通过主页按钮完成 Activity

Finish Activity via Home Button while AlertDialog.Builder is active

我希望我的应用在 AlertDialog.Builder 处于活动状态时完成当前 activity,只需单击一次主页按钮即可。通常它需要点击两次(第一次点击关闭对话框,第二次关闭当前 activity 然后)。

我试图将 finish() 放入 public boolean onKeyDown() 方法中,但我只在第二次点击时进入它(即当 AlertDialog.Builder 不再处于活动状态时) .

有什么想法吗?

PS: 我的AlertDialog.BuilderonCreate()方法中。

如果对话框不可取消,您应该会在第一次按下主页按钮时转到主屏幕。参见 AlertDialog.Builder#setCancelable(boolean)

当您在 activity 上按下主页按钮时,它会调用 OnStop() 方法

所以你必须在你的 Activity 上处理它:

  @Override
        protected void onStop() {

            super.onStop();
        }

所以在你的情况下,你可以使用这个:

  @Override
        protected void onStop() {

        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);

        }

希望对你有帮助 ;) 祝你好运