onBackPressed、onKeyDown和onKeyUp这三个事件的区别

首先,来解释一下这三个事件。

onKeyDown:是当某个按键被按下是触发。所以也有人在点击返回键的时候去执行该方法来做判断。(该方法只是android 1.0~ android 2.1)

捕获判断代码:

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)  {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复

Toast.makeText(ml78.this,"返回键Back键测试",1).show();

return true;

}

return super.onKeyDown(keyCode, event);

}


onKeyUp:这个方法是当某个按键被按下后,抬起的时候执行,其实跟onKeyDown没什么差别

onBackPressed:在android 2.0开始多出了关于返回键的单独的事件方法,可以在该方法里面执行当点击返回键的时候做什么...所以,后期都是用这个方法比较多。

如果要考虑版本兼容的话,代码可这么写:

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// 是否触发按键为back键

if (keyCode == KeyEvent.KEYCODE_BACK) {

onBackPressed();

return true;

} else {// 如果不是back键正常响应

return super.onKeyDown(keyCode, event);

}

}

点击两次返回键退出,防止误操作


//退出时间

privatelongcurrentBackPressedTime= 0;

//退出间隔

privatestaticfinalintBACK_PRESSED_INTERVAL= 2000;

//重写onBackPressed()方法,继承自退出的方法

@Override

publicvoidonBackPressed() {

//判断时间间隔

if(System.currentTimeMillis()-currentBackPressedTime>BACK_PRESSED_INTERVAL) {

currentBackPressedTime= System.currentTimeMillis();

Toast.makeText(this,"再按一次返回键退出程序", Toast.LENGTH_SHORT).show();

}else{

//退出

finish();

}

}

文章部分内容转载自:http://www.csdn123.com/html/mycsdn20140110/4c/4cd69cc9f3b442e5c6eb7f9eaf49ef80.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容