Android之back键拦截处理

原文链接:http://blog.csdn.net/lyjit/article/details/51597160

----------------------------------------------------

Back键是手机上的后退键,在Android上有两种方法来获取该按钮的事件。 
**

一:如何捕获Back按键事件

**

1.直接获取按钮按下事件,直接重写Activity的onKeyDown方法即可,代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复Toast.makeText("lyj_test","now_is_back_event",1).show();return true;}return super.onKeyDown(keyCode, event);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、重写onBackPressed方法

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

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

**

二:Android home键和back键区别

**

back键 
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来,销毁当前Activity。当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

home键 
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.

back键默认把当前Activity给finish,home键只是把Activity给onStop. 
再看一下按HOME和BACK按键Activity的生命周期是怎样的: 
HOME键的执行顺序:onPause->onStop->onRestart->onStart->onResume 
BACK键的顺序: onPause->onStop->onDestroy->onCreate->onStart->onResume 
onPause不要做太耗时的工作

三:按Back键实现按Home键时的效果

1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键 
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可

@Override
public void onBackPressed() { //实现Home键效果 //super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式 Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent);  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

另外,如果想退出应用程序的话,可以自己写个方法,如下:

public void exitProgrames(){ Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); android.os.Process.killProcess(android.os.Process.myPid()); 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php富强民主,WordPress主题添加“富强、民主、文明、和谐、”等鼠标点击特效

打开“外观-主题-编辑-(最右侧)模板-主题页脚 (footer.php)”加入以下代码/* 鼠标特效 */var a_idx 0;jQuery(document).ready(function($) {$("body").click(function(e) {var a new Array("富强", "民主", "文明", "和谐&quo…

DjangoAdmin站点调整列表页展示

调整列表页展示 1 页大小 每页中显示多少条数据,默认为每页显示100条数据,属性如下: list_per_page1001)打开booktest/admin.py文件,修改AreaAdmin类如下: class BookInfoAdmin(admin.ModelAdmin):list_per…

大华热成像netsdkdemo_千年博物,智慧展馆丨大华股份全力守护“华夏珍宝库”...

陕西历史博物馆作为我国第一座大型现代化国家级博物馆,以及首批国家一级博物馆和全国排名前五的国家顶级博物馆,被誉为“古都明珠 华夏宝库”,是讲述五千年中华文化的大学堂,是我国博物馆事业发展的重要里程碑。随着陕西历史博物馆…

Android中scrollview与webview冲突事件

原文链接:http://www.linuxidc.com/Linux/2014-03/98847.htm -------------------------------------------------------------- 在做更新界面的时候,同时使用了scrollview和webview两个组件。在模拟器中测试的时候没有问题,但是在手机上测试…

最新php常用函数200个,180多个PHP常用函数总结

我们知道任何有效的 php 代码都有可能出现在函数内部,甚至包括其它函数和类定义。本文我们主要和大家分享180多个PHP常用函数总结,希望能帮助大家更高效的学习PHP。数学函数1.abs(): 求绝对值$abs abs(-4.2); //4.211输入: 数字输出: 绝对值数字2.ceil(…

Markdown 使用教程

前言 以前经常在 github 中看到 .md 格式的文件,一直没有注意,也不明白为什么文本文档的后缀不是 .txt ,后来无意中看到了 Markdown,看到了用这个东西写得一些web界面等特别的规整漂亮,顿时不明觉厉。后来自己学习了一下&#xff…

wdm设备驱动程序开发pdf_DWDM是什么 DWDM相关设备功能介绍【图文】

WDM/DWDM技术,什么是WDM/DWDM技术波分复用(WDM)是将两种或多种不同波长的光载波信号(携带各种信息)在发送端经复用器(亦称合波器,Multiplexer)汇合在一起,并耦合到光线路的同一根光纤中进行传输的技术;在接收端,经解复用器(亦称分波器或称去复…

Android 获取CellId以及IMEI 获取基站id

private void setCellIdentity() {if (isMobileConnected(this)) {System.out.println("基站已连接");int cellid0;TelephonyManager tel (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);CellLocation cel tel.getCellLocation();//移动联通 GsmC…

团队作业8—团队项目用户验收评审

一、源代码管理的10 个实践问题: 1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题? 我们团队项目的源代码在GitHub上托管,用git控制代码版本,我们用的是win10系统。在这个项目上&…

Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限

原文链接:http://blog.csdn.net/android_hdh/article/details/52583557 ------------------------------- 最近在开发项目时,项目需要获取系统的WRITE_EXTERNAL_STORAGE权限,然后就在清单文件AndroidManifest中添加了该权限,但是…

linux php任务计划,linux系统怎么添加计划任务执行php文件

linux系统怎么添加计划任务执行php文件linux系统怎么添加计划任务执行php文件?PHP不支持多线程,有时候处理问题不是那么爽,小编以php文件为例,讲解linux下的计划任务。linux系统添加计划任务执行php文件方法1.打开linux系统命令行界面。在命令行界面中输入如下命令…

windows server 2008 r2 定时关机_电脑怎么定时关机 秒懂的Win10定时关机命令使用方法...

Win10怎么定时关机?今天芝麻科技网教大家3种Win10定时关机方法,包含用命令定时关机、软件以及杀毒工具定时关机等,也适合XP、Win7和Win8等系统,相信对于一些如夜间下载东西或者大文件,挂机等用户有所帮助。方法一&…

Android-循环访问网站App

网优同事的突然需求。 花了1天开发了出来。 App截图 App操作流程 1、赋值要循环访问网站的地址 2、设置每次循环间隔时间和每次访问间隔时间 3、点击按钮开始访问 下载地址:https://download.csdn.net/download/zengmingen/9983519

与专门团队一起持续交付

BCG Digital Ventures的首席工程师Robin Weston 最近在伦敦持续生命周期大会(Continuous Lifecycle London)上发布了一份经验报告,在该报告中称,外部支持团队能够在难以实施变化的组织和封闭的团队中引入持续交付(CD)实践。该团队…

windows版一键绕id工具_Windows免费版一键绕过IOS13.6激活锁工具XgRiNdA,完美重启!...

支持iOS13.6.1系统,支持iPhone、iPad绕过,支持MEID三网、两网GSM机器,只要一键就可以绕过,可以完美关机重启,并且支持iTunes同步、爱思安装软件。新版本:增加屏幕锁/停用绕过解信号功能、新增12.4~13.2.3绕…

php程序员需要学c语言吗,程序员为什么需要学会C语言

一转眼转行做程序员已经快三年了,刚开始觉得这是个技术活,现在仔细想想每天的工作,好像大多数情况都是在复制粘贴。这不禁让我陷入了恐惧之中,重新思考要突破现有的状况。前两年听说iOS开发使用swift语言开发简单,我就…

Could not find artifact

用Maven install 对父工程安装到本地仓库

uart怎么判断帧错误_UART通讯总线工作原理的理解

奥的斯电梯OCSS/LCBII /TCBC/GECB板与电梯轿厢和电梯井道之间的串行通讯采用了UART通讯,将井道和轿厢的输入、输出和开关部件的信号转换成串行通讯信号传输给电梯操作控制系统,大大节省了现场布线,下面就UART通讯总线工作原理的理解予以描述。…

Laravel核心代码学习--用户认证系统的实现细节

用户认证系统的实现细节 上一节我们介绍了Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthManager是如何装载认证用的看守器(Guard)和用户提供器(UserProvider…

matlab 光谱噪声,环境小卫星高光谱影像条纹噪声去除程序IDL版

前言源代码PRO stripe_remove1ENVI,/Restore_Base_Save_FilesENVI_Batch_initfile DIALOG_PICKFILE(/READ, FILTER *.img)print,fileENVI_OPEN_FILE,file,r_fidfidENVI_FILE_QUERY, fid, dimsdims, nsns, nlnl, nbnbprint,fid,dims,ns,nl,nbfdata fltarr(ns,nl,nb)datafltar…