魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
  1. 首页
  2. Android
  3. 正文

浅谈android返回事件onBackPressed、onKeyDown与dispatchKeyEvent

2016年2月15日 9695点热度 0人点赞 2条评论

1.onBackPressed

@Override
public void onBackPressed() {
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
return;
}

这是android2.0之后出的(其实现在很少再去考虑2.0之前的版本了)可以直接在activity中捕获android的返回键,(但貌似只有activity中可以触发,activityGroup,listActivity,tabActivity好像不好用)

2.onKeyDown

public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
//这里写自己的操作,此方法兼容Android 1.0到Android 2.1
}
}

此方法兼容Android 1.0到Android 2.1 也可以直接在activity中捕获android的返回键,(但同onBackPressed一样,貌似只有activity中可以触发,activityGroup,listActivity,tabActivity好像不好用)

3.dispatchKeyEvent

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN){
//自己的操作
return false;
}
return super.dispatchKeyEvent(event);
}
当键盘按下时
首先触发dispatchKeyEvent
然后触发onUserInteraction
再次onKeyDown
如果按下紧接着松开,则是俩步
紧跟着触发dispatchKeyEvent
然后触发onUserInteraction
再次onKeyUp
所以dispatchKeyEvent只是监控案件不管是activity还是activitygroup都会触发。

 

 

标签: onBackPressed onKeyDown与dispatchKeyEvent
最后更新:2016年2月15日

daozi

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • Precious

    Sharp thnkgiin! Thanks for the answer.

    2016年12月19日
    回复
  • games like growtopia

    Hello, happy that i found on this in google. Thanks!

    2017年9月26日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复
    搜索
    联系方式

    QQ群:179730949
    QQ群:114559024
    欢迎您加入Android大家庭
    本人QQ:136049925

    赐我一丝安慰
    给我一点鼓励

    COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    豫ICP备15000477号