很多网友不明白如何在Android平台上捕获Back键的事件,Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在Android上有两种方法来获取该按钮的事件。

1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复
Toast.makeText(android123.this,"Android开发网Back键测试",1).show();
return true;
}

return super.onKeyDown(keyCode, event);
}

而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下

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

=======================

back键在程序的生命周期有很大作用,譬如某个activity你只想让他出现一次,在周期中点击了back,就让他被销毁掉··

android 的 back键 返回上一级Activity,当然最终会返回到我们的程序的上一级=>主界面,对于很多程序来说不太友好,那么就让我们的程序友好一下吧!

在我们程序的主Activity中 重写一下 onKeyDown事件:

@Override  public boolean onKeyDown(int keyCode,KeyEvent event) {      // 是否触发按键为back键      if (keyCode == KeyEvent.KEYCODE_BACK) {          // 弹出 退出确认框          this.setConfrimDialogListener(new DialogInterface.OnClickListener() {              // 确定 按钮单击事件              @Override             public void onClick(DialogInterface dialog, int which) {                   removeDialog(BaseView.DIALOG_YES_NO_MESSAGE);                   // back键默认执行方法                   // BaseView.this.finish();                   // 结束当前的进程(我们的程序)===>真正意义上的退出                   android.os.Process.killProcess(android.os.Process.myPid());               }           });           this.setConfrimDialogText(R.string.alert_dialog_exit_confirm);           this.showDialog(BaseView.DIALOG_YES_NO_MESSAGE);           /*           * 下面这句话很重要,return true           * 相当于j2se里事件对象的consume()方法,意思是系统不会继续执行该事件,因为已经被消费掉了,O(∩_∩)O~           * 可以看该事件的源码说明:* @return boolean Return true if this event was consumed.           */          return true;       } else// 如果不是back键正常响应           return super.onKeyDown(int keyCode,event);   }

更多相关文章

  1. Android(安卓)简单热修复(上)——Java类加载器
  2. Android的消息机制,用Android线程间通信的Message机制,Android中Ha
  3. Android(安卓)SDK Manager 更新失败的解决方法
  4. sqlite3 表结构查询
  5. Android(安卓)EventBus3.0 索引
  6. Android中全屏无标题设置(Android学习随笔十一)
  7. Dagger2在Android(安卓)studio中的配置与简单使用
  8. Android三种方法设置ImageView的图片
  9. Android(安卓)中使用自定义字体的方法

随机推荐

  1. 初识php
  2. 使用 VSCode 调试 Electron 主进程代码
  3. 多维数组遍历,购物车总金额实例
  4. php运行机制与原理及变量
  5. 在Python中,什么时候以及为何使用:=Over=
  6. 在 CentOS 7 操作系统进行 OpenVZ 7 安装
  7. 如何画人体重心?人体重心的练习分享
  8. 任谦:实践是大数据提升项目的灵魂
  9. Ubuntu18.04安装/卸载NVIDIA显卡驱动
  10. laravel项目公共模板里变量赋值问题