gpt4 book ai didi

android - 按下后退按钮时不调用 onPause?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:42 26 4
gpt4 key购买 nike

我的理解显然是错误的,只要按下后退按钮,就会调用 onPause()?现在在我的代码中,我放置了这个 onPause() 事件:

@Override
protected void onPause(){
super.onPause();

if(!_END_GAME){
Builder _alert = new AlertDialog.Builder(this)
.setMessage("onPause, with game NOT over!");
_alert.setNeutralButton("OK.",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss(); // Kills the interface
System.runFinalizersOnExit(true);
finish();
}
});
_alert.setTitle("Your Score!");
_alert.show();
}

现在的问题是,对话框始终无法启动,然后代码出错。我将对话框放在那里以尝试可视化调用 onPause() 的位置并帮助我调试其他一些变量等。然而就像我说的那样,它甚至从未被展示过。任何想法为什么会这样?当按下后退按钮时,是否有在 onPause() 之前启动的功能?预先感谢您提供任何信息。

最佳答案

onPause 将始终在您的 Activity 不再位于前台时被调用,这是有保证的。也许你的 _END_GAME 不是假的?将调试日志输出添加到您的 onPause 方法,您会看到它总是被调用。

我应该注意,虽然在 onPause 期间显示对话框是一种非常糟糕的形式 - 用户试图摆脱您的应用程序(甚至可能是因为有来电)。那你不想要一个对话。这违背了 Android 设计。

事实上,如果您尝试在 onDestroy 或 onPause 中进行冗长的恶作剧,Android 操作系统只会让您的应用短路。基本上,如果有人打电话,你应该悄悄消失。

如果你真的想拦截后退按钮,你可以像 Ted 建议的那样检查按钮,但请记住你的应用程序可以通过许多其他方式进入后台 - 主页按钮,选定的通知,来电,等

关于android - 按下后退按钮时不调用 onPause?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com