back键的几种使用方法
主要的目的是按back键的时候,让程序能够退出。
实现思路:
1.捕获后退键被按了这个事件。
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
- //按下的如果是BACK,同时没有重复
- //DO SOMETHING
- }
- return super.onKeyDown(keyCode, event);
- }
2.在后退键被按的事件里退出程序
这里也有两种方式:直接退出程序,或者退出到主屏幕。
1)退出程序的方法有两种:
- android.os.Process.killProcess(android.os.Process.myPid());
- System.exit(0);
在1.5模拟器下,程序确实被KILL了,但马上Android又重新启动了程序。
另外还有一种方式,可以释放资源,就是实现起来麻烦一点,需要逐级退出,重写onResume()方法:
- @Override
- protected void onResume() {
- super.onResume();
- if(mExiting){
- finish();
- }
- }
2)退出到主屏幕
新建一个主屏幕的Intent就可以。
- Intent home = new Intent(Intent.ACTION_MAIN);
- home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- home.addCategory(Intent.CATEGORY_HOME);
- startActivity(home);
按后退键回到主屏幕的方式,实现代码如下:
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
- Intent home = new Intent(Intent.ACTION_MAIN);
- home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- home.addCategory(Intent.CATEGORY_HOME);
- startActivity(home);
- }
- return super.onKeyDown(keyCode, event);
- }
转载于:https://www.cnblogs.com/douzhanshen/p/3271325.html
back键的几种使用方法相关推荐
- JavaScript监听手机物理返回键的两种解决方法
JavaScript监听手机物理返回键的两种解决方法 参考文章: (1)JavaScript监听手机物理返回键的两种解决方法 (2)https://www.cnblogs.com/xzzzys/p/8 ...
- oracle绑定主键,oracle添加主键的四种方法:
oracle添加主键的四种方法: 列级,表级建立主键 drop table constraint_test; 1.create table constraint_test ( name_id numb ...
- android动态加home,Android 解决监听home键的几种方法
Android 解决监听home键的几种方法 前言: 以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键). 一.使用注册广播监听home键.多任务键 演示图 创建一个广播代码如 ...
- java获取map遍历,Map获取键值,Map的几种遍历方法总结(推荐)
Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map---实现Map Map.Entry--Map的内部类,描述Map中的按键/数值对. S ...
- android自动隐藏虚拟键,Android 隐藏底部虚拟键的两种方法
方法一 滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 1 ...
- ChemDraw加键的两种方法
绘制化学结构离不开9种ChemDraw键工具,键工具在绘制过程中提供了最大的使用优势,这种优势体现在键角.键长的绘制,故很有必要学习相关的ChemDraw使用技巧.本ChemDraw教程将具体介绍在C ...
- Android中监听Home键的4种方法总结
本文主要介绍了Android中监听Home键的4种方法总结,主要讲解了onSaveInstanceState方法.onUserLeaveHint方法.ACTION_CLOSE_SYSTEM_DIALO ...
- PHP实现对多维数组按照某个键值排序的两种解决方法
实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种: array_multisort()函数对多个数组或多维数组进行排序. //对数组$ho ...
- mysql workbench kernelbase.dll_电脑出现kernelbase.dll错误的两种解决方法
KernelBase.dll是Windows操作系统的重要文件,它为各种应用程序提供服务.如果电脑提示kernelbase.dll错误,这该怎么处理?大家可以用电脑自带的防火墙或者是第三方软件来进行故 ...
最新文章
- NYOJ-232 How to eat more Banana
- SpringBoot + Redis:模拟 10w 人的秒杀抢单!
- 插件和代码两种方法搞定WordPress回复邮件通知
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- 【计网】计网----子网掩码,网关,ARP协议的作用
- 普通一维数组、二维数组、字符串及其指针类型
- python代码加密cython_利用Cython加密python脚本
- 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is
- 计算机硬件的五大逻辑部分,计算机硬件系统主要由五个部分组成?
- css表格文字超数量就竖排_css实现文字竖排
- 千呼万唤始出来——GPT-3终于开源!
- Flume 数据采集
- 安卓掌读小说v1.5.8破解版免费分享
- C	Sleepy Kaguya
- windows7软件显示问号乱码问题
- Python绘制折线图、散点图
- 【原创】小球碰撞动画
- 女孩子有什么颜值高的蓝牙耳机推荐?双12五款高音质游戏蓝牙耳机分享
- ANSYS Workbench中多场耦合下不同模块间的信息共享设置
- css基础语法与注释,简述CSS注释
热门文章
- JVM入门(位置、体系结构、类加载器、双亲委派机制、沙箱安全机制、Native、PC寄存器、方法区、堆(新生区{伊甸园区、幸存区}、养老区、永久区)、OOM、GC算法、JMM)
- springboot+mysql机房管理系统-计算机毕业设计源码43362
- 国内外MOOC平台商业模式调查
- 添加对System.ComponentModel.DataAnnotations.Schema;的引用
- CCNP——P2P网络(点对点网络)类型的OSPF的特点
- 从vivi虚拟摄像头驱动开始分析v4l2
- 大型工业设施的辐射噪声控制方法概论
- win7 IIS配置
- 一叶子两年就成面膜行业冠军,红海厮杀靠的不只是10亿广告费
- 单声道80W/立体声40W内置DSP数字功放+升压IC蓝牙音箱