当开始 按下某个按键 的时候 先是驱动层先知道的 然后依次向下传递
1)如果return false : 将 "事件" 不会经过Activity 也就是 (MainActivity的父类),而是一层一层的返 回给驱动层 .
2)如果return true : 就是防止 "事件" 继续传递而是拦截下来 只在MainActivity 中处理
3)如果return super.onKeyDown(keycode,event) 这就是交给了Activity处理 (注意acitivy里的代码是谷歌工程师写的 它也得需要判断是自己处理还是需要返回给系统) 如果你按的 是返回键的时候 就return true 自己处理 记录一下 待到up的时候 finish了 如果不是 return false;
一般应用在app应用程序中,双击退出
private long lastTime = -1;
//按键按下
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.e(Tag,">>>>>> onKeyDown");
if (keyCode == event.KEYCODE_BACK){
if (System.currentTimeMillis()-lastTime>2000){
Toast.makeText(this,"在按一次退出",Toast.LENGTH_LONG).show();
lastTime = System.currentTimeMillis();
}else{
finish();
}
}
return true;
}