如何以编程方式在android中按回按钮?

vin*_*thp 76 android activity-finish android-activity

在我的应用程序中,我有一个注销功能.如果用户单击注销,则会转到主屏幕.现在我按退回按钮退出我的应用程序.但我想要的是我需要像后退按钮功能一样自动退出(即以编程方式).我知道通过调用finish()将完成功能.但问题在于之前的活动.

Tar*_*run 116

onBackPressed() 支持自:API级别5

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        onBackPressed();
    }
}

@Override
public void onBackPressed() {
    //this is only needed if you have specific things
    //that you want to do when the user presses the back button.
    /* your specific things...*/
    super.onBackPressed();   
}
Run Code Online (Sandbox Code Playgroud)

  • @KKD如果您必须支持低于5的API,那么您必须使用如上所述.. http://android-developers.blogspot.co.uk/2009/12/back-and-other-hard-keys-three-stories html的 (3认同)
  • 这有什么意义?你在写默认的android.按下后退按钮时调用onBackPressed()....我是对的吗? (2认同)

jos*_*hus 38

您无需覆盖onBackPressed()- 它已被定义为当用户按下后退按钮时您的活动默认执行的操作.所以onBackPressed()只要你想"以编程方式按下"后退按钮就可以打电话.

但这只会导致finish()被调用;)

我认为你对后退按钮的作用感到困惑.默认情况下,它只是一个调用finish(),所以它只退出当前活动.如果您在该活动后面有某些内容,则会显示该屏幕.

你可以做的是从登录时启动你的活动,添加一个CLEAR_TOP标志,这样你退出时就不会有登录活动.


Ser*_*oya 9

有时候覆盖方法onBackPressed()是有用的,因为如果你使用片段而你在它们之间进行切换,如果你按下后退按钮它们会返回到前一个片段.


dru*_*abs 5

onBackPressed在您的活动中覆盖它后调用.

  • 感谢您的评论.. OnBackPressed 我可以在按下后退按钮时插入代码.. 我想要的是我想自动调用后退按钮......我清楚 (2认同)