在android中禁用后退button

如何在注销应用程序时禁用android中的后退button?

覆盖onBackPressed方法,如果您想处理设备上的后退button,则不执行任何操作。

@Override public void onBackPressed() { } 

需要API等级5或更高。

如果寻找Android的API级别高达1.6。

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR return true; } return super.onKeyDown(keyCode, event); } 

而如果寻找更高的api水平2.0及以上,这将工作很好

 @Override public void onBackPressed() { // Do Here what ever you want do on back press; } 

将这些代码写入您的活动中以防止后退button被按下

你可以做这个简单的方法不要调用super.onBackPressed()

注意: – 除非你有足够的理由去做,否则不要这样做。

 @Override public void onBackPressed() { super.onBackPressed(); // dont call **super**, if u want disable back button in current screen. } 

只需重写onBackPressed()方法。

 @Override public void onBackPressed() { } 

我正在使用………….

  @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK) Toast.makeText(getApplicationContext(), "back press", Toast.LENGTH_LONG).show(); return false; // Disable back button.............. } 

如果你想确保你的android客户端应用程序在你的Activity被杀死之前从某个服务器上注销,那么在它自己的线程上注销一个服务(这就是你应该做的)。

禁用后退button不会为您解决任何问题。 当用户收到电话时,您仍然会遇到同样的问题。 当收到电话时,您的活动在从networking获得可靠的答复之前有大概几率被杀死。

这就是为什么你应该让一个服务在自己的线程上等待来自networking的答案,然后如果不成功,就再试一次。 android服务在获得回答之前不仅不太可能被杀死,而且在完成工作之前真的被杀掉了,它总是可以通过AlarmManager重新启动来重试。

如果你正在使用FragmentActivity 。 然后这样做

首先调用这个在你的Fragment里面。

 public void callParentMethod(){ getActivity().onBackPressed(); } 

然后在你的父FragmentActivity类中调用onBackPressed方法。

 @Override public void onBackPressed() { //super.onBackPressed(); //create a dialog to ask yes no question whether or not the user wants to exit ... } 

如果要在注销时禁用应用程序,可以popup一个不可取消的对话框。

你只需要重写后退button的方法。 如果您想要,您可以将方法留空,以便在按下后退button时不会发生任何事情。 请看下面的代码:

 @Override public void onBackPressed() { // Your Code Here. Leave empty if you want nothing to happen on back press. } 

对我来说,只是覆盖onBackPressed()没有工作,但明确指出哪个活动应该开始工作:

 @Override public void onBackPressed(){ Intent intent = new Intent(this, ActivityYouWanToGoBack.class); startActivity(intent); } 

从上面的答案除了这两个方法。

onBackPressed() (API Level 5,Android 2.0)

onKeyDown() (API Level 1,Android 1.0)

您也可以像这样覆盖dispatchKeyEvent() (API Level 1,Android 1.0)

dispatchKeyEvent() (API Level 1,Android 1.0)

 @Override public boolean dispatchKeyEvent(KeyEvent event) { // TODO Auto-generated method stub if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { return true; } return super.dispatchKeyEvent(event); }