Android ON暂停和返回按钮

Android ON暂停和返回按钮,android,Android,我经常暂停活动,效果很好。这是密码 @Override protected void onPause() { super.onPause(); Intent intent; intent = new Intent(Games.this, PauseScreen.class); startActivity(intent); } 但我有个问题。当我按下后退按钮时,Pause正在呼叫并开始新的活动。我希望onPause始终工作,除非我在手机上单击“上一步”按钮。我

我经常暂停活动,效果很好。这是密码

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

    intent = new Intent(Games.this, PauseScreen.class);
    startActivity(intent);

}

但我有个问题。当我按下后退按钮时,Pause正在呼叫并开始新的活动。我希望onPause始终工作,除非我在手机上单击“上一步”按钮。我怎么能做到?我认为这可能是
如果(backbutton被单击){onPause不工作}或者{onPause工作}
但是我不知道如何实现这个解决方案。或者你有更好的主意?

实现以下方法-

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
             //Do something (OR NOTHING)
    }
    return true;
}
请记住返回
true
,因为这意味着您已经在按back键时进行了处理,系统不需要处理它


这是
onBackPressed()
的一个很好的替代品,它可能对您有效,也可能对您无效。

实现以下方法-

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
             //Do something (OR NOTHING)
    }
    return true;
}
请记住返回
true
,因为这意味着您已经在按back键时进行了处理,系统不需要处理它


这是一个很好的替代
onBackPressed()
,它可能对您有效,也可能对您无效。

尝试覆盖
onBackPressed()
在其中设置一个标志,并在
onPause()中检查该标志。


(虽然从onPause开始另一个活动很奇怪,但也许你有很好的理由这么做,但我想不出这种情况…

尝试覆盖
onBackPressed()
在其中设置一个标志,并在
onPause()中检查该标志。

(从onPause开始另一项活动是很奇怪的,但也许你有充分的理由这么做,但我想不出这样的场景…

@user1302569

以下是您可以在应用程序中实现所需行为的步骤

步骤1:在活动中覆盖此back Key方法

@Override
  public void onBackPressed() {
             //Here you get Back Key Press So make boolean false
             no_back_key=false;
             super.onBackPressed();
} 
步骤2:在Activity类中获取一个如下所示的布尔变量

 public boolean no_back_key=true;
步骤3:在OnPause方法中,执行以下操作

           @Override
           protected void onPause() {
           super.onPause();
           Intent intent;
           //Only this boolean will become false when we get Back Key Press as you Said in Your   Question
           if(no_back_key){
           intent = new Intent(Games.this, PauseScreen.class);
           startActivity(intent);
    }
第四步:在你的活动简历中,也要确保这一点

    @Override
    protected void onResume() {
    no_back_key=true;
    super.onResume();
}
}

关于Android中的Back Key事件,在开发者网站中,您可以参考以下内容

以下是您可以在应用程序中实现所需行为的步骤

步骤1:在活动中覆盖此back Key方法

@Override
  public void onBackPressed() {
             //Here you get Back Key Press So make boolean false
             no_back_key=false;
             super.onBackPressed();
} 
步骤2:在Activity类中获取一个如下所示的布尔变量

 public boolean no_back_key=true;
步骤3:在OnPause方法中,执行以下操作

           @Override
           protected void onPause() {
           super.onPause();
           Intent intent;
           //Only this boolean will become false when we get Back Key Press as you Said in Your   Question
           if(no_back_key){
           intent = new Intent(Games.this, PauseScreen.class);
           startActivity(intent);
    }
第四步:在你的活动简历中,也要确保这一点

    @Override
    protected void onResume() {
    no_back_key=true;
    super.onResume();
}
}


关于Android中的Back Key事件,在开发者网站中,您可以参考此

非常感谢。这是一个很好的解决方案。非常感谢。这是一个很好的解决方案。