今天公司老板突然跟我说客户这有一个需求想要实现一下,就是在使用app时,按返回键时,不退出应用程序,相当于home 键的功能,然后我就将退出程序的功能和不退出程序的功能进行了一个比较在这里。
1,首先是第一种:当按一次返回键就退出程序,当再次进入app,应用相当于重新进去;方法就是在 activity中什么都不用重写方法,直接实现所有的功能就可以;
2,第二种:当按两次返回键时再退出程序,当再次进入app,应用相当于重新进入,到应用的初始位置,展示第一个activity,此方法不解释那么多,直接复制代码:
// 再按一次退出程序 /*public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent .ACTION_DOWN && event.getRepeatCount() == 0) { long current = System.currentTimeMillis(); if (current - backPressTime > 2000) { backPressTime = current; Toast.makeText(MainActivity2.this, "再按一次退出程序", Toast.LENGTH_LONG).show(); } else { App.getApp().quit(); App.getApp().eqList = null; } return true; } return super.dispatchKeyEvent(event); }*/
上面的方法中 需要调用一个系统的方法,并且判断两次按返回键的中间间隔时间不能超过2秒,超过两秒再此进行此方法
3,第三种就是当按一次返回键时,返回主界面,但不退出应用程序,相当于home键效果,直接复制代码:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Intent i = new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addCategory(Intent.CATEGORY_HOME); startActivity(i); return true; } return super.onKeyDown(keyCode, event); }在主activity中重写此方法,就可以完成。