在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); }