首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnPause和return按钮

OnPause和return按钮
EN

Stack Overflow用户
提问于 2012-03-30 18:35:02
回答 3查看 1.5K关注 0票数 1

我有onPause在活动中,并且工作得很好。这是代码

代码语言:javascript
复制
@Override
protected void onPause() {
    super.onPause();
    Intent intent;

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

}

但我有个问题。当我按下后退按钮时,onPause正在调用并开始新的活动。我想要onPause总是工作,除非我点击我的手机上的后退按钮。我怎么能做到这一点?我认为这可能是if(backbutton was click){onPause is not working}else{onPause working},但我不知道如何实现这个解决方案。或者你有更好的主意?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-30 18:59:45

@user1302569

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

步骤1:在你的活动中重写这个back键方法。

代码语言:javascript
复制
@Override
  public void onBackPressed() {
             //Here you get Back Key Press So make boolean false
             no_back_key=false;
             super.onBackPressed();
} 

第2步:在您的Activity类中获取一个如下所示的布尔变量。

代码语言:javascript
复制
 public boolean no_back_key=true;

步骤3:在您的OnPause方法中,执行如下所示的操作

代码语言:javascript
复制
           @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);
    }

第四步:在你的活动的OnResume中,也要确保这一点。

代码语言:javascript
复制
    @Override
    protected void onResume() {
    no_back_key=true;
    super.onResume();
}

}

关于安卓系统中的后退键事件,在开发者网站上你可以参考这个http://android-developers.blogspot.in/2009/12/back-and-other-hard-keys-three-stories.html

票数 2
EN

Stack Overflow用户

发布于 2012-03-30 18:59:07

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

(虽然从onPause启动另一个活动很奇怪,但也许您有很好的理由这样做,我想不出这样的情况……)

票数 0
EN

Stack Overflow用户

发布于 2012-03-30 18:40:50

实现以下方法:

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
             //Do something (OR NOTHING)
    }
    return true;
}

记住返回true,因为它意味着你已经处理了back键的按下,而系统不需要处理它。

这是onBackPressed()的一个很好的替代品,它可能会也可能不会对你起作用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9941350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档