主要的目的是按back键的时候,让程序能够退出。

实现思路:

1.捕获后退键被按了这个事件。

Java代码 
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event)  {
  3. if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
  4. //按下的如果是BACK,同时没有重复
  5. //DO SOMETHING
  6. }
  7. return super.onKeyDown(keyCode, event);
  8. }

2.在后退键被按的事件里退出程序

这里也有两种方式:直接退出程序,或者退出到主屏幕。

1)退出程序的方法有两种:

Java代码 
  1. android.os.Process.killProcess(android.os.Process.myPid());
Java代码 
  1. System.exit(0);

在1.5模拟器下,程序确实被KILL了,但马上Android又重新启动了程序。

另外还有一种方式,可以释放资源,就是实现起来麻烦一点,需要逐级退出,重写onResume()方法:

Java代码 
  1. @Override
  2. protected void onResume() {
  3. super.onResume();
  4. if(mExiting){
  5. finish();
  6. }
  7. }

2)退出到主屏幕

新建一个主屏幕的Intent就可以。

Java代码 
  1. Intent home = new Intent(Intent.ACTION_MAIN);
  2. home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  3. home.addCategory(Intent.CATEGORY_HOME);
  4. startActivity(home);

按后退键回到主屏幕的方式,实现代码如下:

Java代码 
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
  4. Intent home = new Intent(Intent.ACTION_MAIN);
  5. home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  6. home.addCategory(Intent.CATEGORY_HOME);
  7. startActivity(home);
  8. }
  9. return super.onKeyDown(keyCode, event);
  10. }

转载于:https://www.cnblogs.com/douzhanshen/p/3271325.html

back键的几种使用方法相关推荐

  1. JavaScript监听手机物理返回键的两种解决方法

    JavaScript监听手机物理返回键的两种解决方法 参考文章: (1)JavaScript监听手机物理返回键的两种解决方法 (2)https://www.cnblogs.com/xzzzys/p/8 ...

  2. oracle绑定主键,oracle添加主键的四种方法:

    oracle添加主键的四种方法: 列级,表级建立主键 drop table constraint_test; 1.create table constraint_test ( name_id numb ...

  3. android动态加home,Android 解决监听home键的几种方法

    Android 解决监听home键的几种方法 前言: 以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键). 一.使用注册广播监听home键.多任务键 演示图 创建一个广播代码如 ...

  4. java获取map遍历,Map获取键值,Map的几种遍历方法总结(推荐)

    Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map---实现Map Map.Entry--Map的内部类,描述Map中的按键/数值对. S ...

  5. android自动隐藏虚拟键,Android 隐藏底部虚拟键的两种方法

    方法一  滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 1 ...

  6. ChemDraw加键的两种方法

    绘制化学结构离不开9种ChemDraw键工具,键工具在绘制过程中提供了最大的使用优势,这种优势体现在键角.键长的绘制,故很有必要学习相关的ChemDraw使用技巧.本ChemDraw教程将具体介绍在C ...

  7. Android中监听Home键的4种方法总结

    本文主要介绍了Android中监听Home键的4种方法总结,主要讲解了onSaveInstanceState方法.onUserLeaveHint方法.ACTION_CLOSE_SYSTEM_DIALO ...

  8. PHP实现对多维数组按照某个键值排序的两种解决方法

    实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种: array_multisort()函数对多个数组或多维数组进行排序. //对数组$ho ...

  9. mysql workbench kernelbase.dll_电脑出现kernelbase.dll错误的两种解决方法

    KernelBase.dll是Windows操作系统的重要文件,它为各种应用程序提供服务.如果电脑提示kernelbase.dll错误,这该怎么处理?大家可以用电脑自带的防火墙或者是第三方软件来进行故 ...

最新文章

  1. NYOJ-232 How to eat more Banana
  2. SpringBoot + Redis:模拟 10w 人的秒杀抢单!
  3. 插件和代码两种方法搞定WordPress回复邮件通知
  4. ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
  5. 【计网】计网----子网掩码,网关,ARP协议的作用
  6. 普通一维数组、二维数组、字符串及其指针类型
  7. python代码加密cython_利用Cython加密python脚本
  8. 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is
  9. 计算机硬件的五大逻辑部分,计算机硬件系统主要由五个部分组成?
  10. css表格文字超数量就竖排_css实现文字竖排
  11. 千呼万唤始出来——GPT-3终于开源!
  12. Flume 数据采集
  13. 安卓掌读小说v1.5.8破解版免费分享
  14. C Sleepy Kaguya
  15. windows7软件显示问号乱码问题
  16. Python绘制折线图、散点图
  17. 【原创】小球碰撞动画
  18. 女孩子有什么颜值高的蓝牙耳机推荐?双12五款高音质游戏蓝牙耳机分享
  19. ANSYS Workbench中多场耦合下不同模块间的信息共享设置
  20. css基础语法与注释,简述CSS注释

热门文章

  1. JVM入门(位置、体系结构、类加载器、双亲委派机制、沙箱安全机制、Native、PC寄存器、方法区、堆(新生区{伊甸园区、幸存区}、养老区、永久区)、OOM、GC算法、JMM)
  2. springboot+mysql机房管理系统-计算机毕业设计源码43362
  3. 国内外MOOC平台商业模式调查
  4. 添加对System.ComponentModel.DataAnnotations.Schema;的引用
  5. CCNP——P2P网络(点对点网络)类型的OSPF的特点
  6. 从vivi虚拟摄像头驱动开始分析v4l2
  7. 大型工业设施的辐射噪声控制方法概论
  8. win7 IIS配置
  9. 一叶子两年就成面膜行业冠军,红海厮杀靠的不只是10亿广告费
  10. 单声道80W/立体声40W内置DSP数字功放+升压IC蓝牙音箱