基础_ _返回键back
============ 2, android中的back键处理
很多网友不明白,如何在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(ml78.this,"魔力去吧Back键测试",1).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
2、重写onBackPressed方法
而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下
@Override
public void onBackPressed() {
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
return;
}
此外,关于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键时隐藏程序的效果:
1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可
@Override
public void onBackPressed() {
//实现Home键效果
//super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
Intent i= new Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
|
退出应用程序的实现:可以自己写个方法,例如:
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, Android中OnkeyDown事件和OnBackPressed方法区别、兼容、使用
在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(ml78.this,"返回键Back键测试",1).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下
@Override
public void onBackPressed() {
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
return;
}
同时还有一种情况,就是在以前开发的程序中使用的是onKeyDown方法,但是后续版本为了兼容OnBackPressed方法。就需要两者之间进行嵌套。具体的方法如下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
} else {// 如果不是back键正常响应
return super.onKeyDown(keyCode, event);
}
}
利用时间差方法完成两次返回键退出,防止误操作。
// 退出时间
private long currentBackPressedTime = 0;
// 退出间隔
private static finalint BACK_PRESSED_INTERVAL = 2000;
//重写onBackPressed()方法,继承自退出的方法
@Override
publicvoid onBackPressed() {
// 判断时间间隔
if (System.currentTimeMillis()- currentBackPressedTime > BACK_PRESSED_INTERVAL) {
currentBackPressedTime = System.currentTimeMillis();
Toast.makeText(this, "再按一次返回键退出程序", Toast.LENGTH_SHORT).show();
} else {
// 退出
finish();
}
}
转载于:https://www.cnblogs.com/awkflf11/p/5421496.html
基础_ _返回键back相关推荐
- 安卓10侧边返回_向返回键说拜拜,安卓10向全面屏手势继续迈进
原标题:向返回键说拜拜,安卓10向全面屏手势继续迈进 [PConline 资讯]全面屏在手机的应用已经愈发常见,更大的屏幕挤占了原本留给实体按键排布的位置,全面屏手势也就应运而生.苹果手机在iPhon ...
- Android Native APP开发笔记:双击返回键退出应用单击返回键返回桌面
文章目录 目的 基础说明 双击返回键退出应用 单击返回键回到桌面 总结 目的 双击返回键退出应用 很早之前就是Android中非常常见的一种功能,而目前好多安卓应用为了应用常驻都改为使用 单击返回键返 ...
- 苹果手机home键在哪里_苹果手机为什么没有返回键?原来隐藏着更好的方法,涨知识了...
手机主要分为苹果和安卓两种,安卓手机的用户,如果突然换用了苹果手机,就会发现很难适应.没有返回键.后台键的手机,仅为一个Home键就可以操作全部. 一.不用返回键原因 苹果发布的第一代产品就没有设计返 ...
- 苹果手机home键在哪里_苹果手机为什么没有返回键? 原来隐藏着更好的方法, 涨知识了...
阅读本文前,请您先点击上面的蓝色字体"财经史",再点击"关注",这样您就可以继续免费收到最新文章了.每天都有分享.完全是免费订阅,请放心关注. 不知道大家和我是 ...
- 华为手机主界面的返回键怎么调出来_主按钮怎么变回来 华为手机的返回键怎么设置?...
3dmax主工具栏按钮怎么变小了?在菜单栏选择customizePreferences,在General选项卡里找到UI Display,取消或勾选Use Large Toolbar Buttons, ...
- 华为怎么显示返回按键_苹果手机为何一直没有“返回键”?其实乔布斯生前就说出了答案!...
阅读本文前,请您先点击上面的蓝色字体"自媒创业",再点击"关注",这样您就可以继续免费收到最新文章了.每天都有分享.完全是免费订阅,请放心关注 手机市场近几年的 ...
- 安卓10侧边返回_安卓10.0内测版现新操作手势:取消返回键、全靠Home胶囊完成...
自iPhone X移除实体Home键后,手势操作在iOS和Android上便加速了普及步伐.其中,谷歌在Android 9 Pie上引入了原生的手势,当然,以小米.华为等为代表的OEM厂商也自订了 ...
- 安卓10侧边返回_安卓10.0内测版出现新版手势操作:取消返回键、全靠Home胶囊完成...
自iPhone X移除实体Home键后,手势操作在iOS和Android上便加速了普及步伐.其中,谷歌在Android 9 Pie上引入了原生的手势,当然,以小米.华为等为代表的OEM厂商也自订了特色 ...
- 华为手机主界面的返回键怎么调出来_华为手机返回键怎么调整 怎么设置返回键...
新买的手机不管怎么流畅,一旦用的时间长了之后不清理内存,手机就会越来越卡,为避免手机速度变慢,有必要及时清理,让软件缓存对手机使用不造成影响,.那么下面就让我们来看一下华为手机返回键怎么调整?华为手机 ...
最新文章
- VASP计算光学性质
- 初二模拟赛总结(2019.8.7)
- 具有关联映射的Hibernate Composite ID
- Vue3过渡动画实现
- HTML5网络科技企业网页模板
- mysql 横纵表转化_数据库MySQL横纵表相互转化操作实现方法
- linux安装mysql.rpm软件包_Linux环境安装MySQL数据库(RPM格式的软件包)
- eclipse和maven
- OLAP-presto-大数据Week13-DAY-presto
- Useful SQL script
- 性能测试之工具对比-ngrinder jmeter loadunner及ngrinder安装使用方法
- 旅游后台管理系列——使用maven tomcat插件启动web工程
- java lbs云_LBSyuncunchudemo 一个使用百度地图API,利用LBS云存储云检索的代码,可以测试 。 Java Develop 238万源代码下载- www.pudn.com...
- po是什么意思java_PO/VO/DAO/BO/POJO是什么(JAVA 的解釋)
- PS制作个人LOGO技术总结
- Win11玩红警2突然就卡住不动?
- CodeForces - 581B - Luxurious Houses 逆序处理水
- case when then else end 语句遇上sum或count等统计函数的注意事项(列转行)
- Java面向对象基础呕心沥血三千字
- 滴滴为什么选择与章鱼哥APP合作?
热门文章
- 从键盘上输入5个学生的分数,求平均分数,最高分数,最低分数,并统计高于平均分数的人数。
- awd-php,awd平台搭建
- drools_03_dialect
- 最全Pycharm教程(41)——Pycharm扩展功能之便签注释
- Docket学习2《docker安装nginx、安装tomcat、安装Centos7、容器导入导出、镜像上传到仓库》
- latex 作者名上的邮件符号_Latex作者单位的写法—AND 首页脚注
- android回声消除方案,android系统通话中回声消除的实现.doc
- 关于在SNPE平台上进行ONNX模型转换DLC模型
- 企业怎么做软文营销,软文撰写的技巧
- 联合国工作机会,面向中国!!!