Android中实现点击两次返回键退出程序的效果

Android学习心得② - fragment中设置双击返回键退出程序 最近做的软件要实现双击返回键退出程序效果,其实一开始我是拒绝的,你不能让我改,我就马上去改,因为我不愿意改完了以后再加一些特技上去,代码“duang”一下,很快、很屌,这样用户出来一定会骂我,根本没有这样的软件,就证明上面那个是假的。后来我也经过证实他们确实是实用的,我改了大概一个小时左右,感觉还不错,后来我在用的时候也要求他们不要加特技,因为我要让用户看到,我用完之后是这个样子,你们用完之后也会是 阅读详情
第一种办法

响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序
代码:

//记录用户首次点击返回键的时间
private long firstTime = 0;

/**
* 第一种解决办法 通过监听keyUp
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
System.exit(0);
}
}

    return super.onKeyUp(keyCode, event);
}

第二种办法

和第一种办法一样,这不过这次响应onKeyDown事件
代码:

/**
* 第二种办法
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}

第三种办法

直接重写onBackPressed()方法
代码:

/**
* 第三种方法
*/
@Override
public void onBackPressed() {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
} else {
System.exit(0);
}

第四种办法

通过线程延时的办法实现,借助Timer
代码:

/**
* 第四种方法
*/
@Override
public void onBackPressed() {
if (!mBackKeyPressed) {
Toast.makeText(this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
mBackKeyPressed = true;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mBackKeyPressed = false;
}
}, 2000);
} else {
this.finish();
System.exit(0);
}
}

第五种办法
在onKeyUp()方法内使用Timer

 /**
 * 第五种办法
 * @param keyCode
 * @param event
 * @return
 */
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
        if (!mBackKeyPressed) {
            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
            mBackKeyPressed = true;
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    mBackKeyPressed = false;
                }
            }, 2000);
            return true;
        } else {
            this.finish();
            System.exit(0);
        }
    }
    return super.onKeyUp(keyCode, event);
}

第六种办法
在onKeyDown()方法内使用Timer

/**
* 第六种办法
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
if (!mBackKeyPressed) {
Toast.makeText(this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
mBackKeyPressed = true;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mBackKeyPressed = false;
}
}, 2000);
return true;
} else {
this.finish();
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析 本文详细解析了将YOLOv8模型部署到Hi3516CV610开发板的全流程。内容涵盖从Ubuntu环境搭建、模型获取与验证,到关键的PyTorch模型转换为ONNX格式,并利用海思工具链量化生成板端可执行的.wk文件。最后,指导开发者编写板端C程序,完成视频流处理、NNIE推理及结果后处理,并提供了部署调试与性能优化的实用技巧。 阅读详情

相关推荐

CoppeliaSim(原V-REP)新手上路

CoppeliaSim(原V-REP)是一个机器人仿真平台,里面有很多来自别的公司的机器人模型以及完备的物理引擎,我们可以通过python,c++,matlab等语言控制里面的机器人。,您也可以在官网中Downloads里找您需要的版本,一般只需要下载EDU版本就可以了,我下载的是v4.1.0 windows EDU版本。在版本V4之前,CoppeliaSim叫V-REP,在官网可以下载到之前的V-REP版本。

qq_37051669的博客 4万+

c android双击退出程序,Android 双击返回键退出程序的方法总结

Android 双击返回键退出程序的方法总结下面先说说LZ思路,具体如下:1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序;2. 第二种就是使用Android中计时器(Timer),其实这俩种都差不多.思路是有了,,,接下来要怎么开搞呢???用户点击肯定会触发相应的事件,,,我们先来看下面俩个事件的作用。。。Activity.onKeyDown();当某个键被按下时会触发,但不会被任何...

weixin_34553907的博客 318

泛微OAe9-自定义资源看板

OA中,有一个很好用的功能:会议室预约。对于一间设立的会议室,同一时间段内,肯定会有不同的人预约同一间会议室,并且,在资源看板里,能看清各个时间段会议室的占用情况,可是会议室资源是有限的,显然不可能让多个人在同一时间段内预约同一间会议室,如会议室已占用,其他人再次申请时,应当拒绝预约。

小松鼠的博客 1848

Android软键盘(七)键盘显示的状态下,onKeyDown方法无法监听到back事件

Android键盘显示的状态下,onKeyDown方法无法监听到back事件,android弹出键盘的系统下,监听不到返回值的解决方案。

Ade-rui的博客 3094

【数据分析/商业分析】面试题整理——SQL专题

数据分析\商业分析—面试题整理 自己总结的SQL类的面试题 文章目录数据分析\商业分析—面试题整理1.新增用户2.活跃用户数量3.连续登录4.次(n)日留存5.每个科目下分数最高的两名学生

awater_17的博客 1859

Doris Streamloader安装教程

Doris Streamloader 是一款用于将数据导入 Doris 数据库的专用客户端工具。本文介绍其在centos7环境下的安装过程

qq_44540985的博客 1089

在有TabHost控件的页面,解决onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件

在有TabHost控件的页面,onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件,用dispatchKeyEvent方法可以拦截KeyEvent.KEYCODE_BACK事件,但要注意在if判断中要加一个event.getAction() == KeyEvent.ACTION_DOWN判断,因为按键有两个事件ACTION_DOWN和ACTION_UP,也就是按下和松开,如果不加这个判断,代码会执行两遍。

5805

基于RTL8367S与XS2184的工业级POE交换机硬件设计全解析

本文深入解析基于RTL8367S与XS2184芯片的工业级POE交换机硬件设计,涵盖核心价值、芯片选型、原理图设计、PCB布局及可靠性验证等关键环节。重点探讨双芯片协同工作优势,如RTL8367S的自适应调度算法和XS2184的智能功率分配功能,为工业环境下的稳定供电与数据传输提供专业解决方案。

weixin_42614269的博客 458

Android实现两次按下返回键退出

private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK &...

chuangliaocha7238的博客 137

《Unity DOTS之ECS从入门到不香》(1)基本概念

文章目录一、什么是DOTS?二、什么是ECS?三、Hello World 一、什么是DOTS? Data Oriented Tech Stack(DOTS)是unity推出的多线程面向数据的技术堆栈 。它是一套高性能解决方案,包含三个部分: 1.ECS:ECS是一种有别于面向对象的编程模式,是面向CPU Cache友好的编程模式。要求代码都要按照 实体+组件+系统 的框架构建。官方链接 2.JobSystem:JobSystem是unity推出的一套先进的多线程任务管理系统,结合ECS可以获得最佳性能。当然

Cxihu田树东的游戏开发博客 2732

04 HCM CPI SF集成-员工集成(一)

将员工主数据和组织数据从SAP Successfactors Employee CentraI复制到SAPERP或SAP S/4HANA,SAP SF CPI HCM集成

SAP CPI 146

dispatchKeyEvent方法 按返回键back 执行两次

重写dispatchKeyEvent方法 按返回键back 执行两次的解决方法    转自:@Override  public boolean dispatchKeyEvent(KeyEvent event) {     if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACT

突破极限,突破局限,黑色之路,默默走完... 1831

人形机器人 vs 机器狗SLAM:FAST_LIO_LOCALIZATION_HUMANOID的差异化优化方向

《FAST_LIO_LOCALIZATION_HUMANOID在人形与机器狗应用中的差异化优化策略》摘要: 格灵深瞳开源的FAST_LIO_LOCALIZATION_HUMANOID系统针对人形机器人和机器狗提出了差异化优化方案。人形机器人需应对双足步态带来的周期性晃动,通过动态盲区滤波、二阶运动模型补偿步态相位畸变,并修复重力向量计算误差。机器狗则需解决四足高频运动挑战,包括设计自适应地面分割算法、抑制IMU高频振动噪声,以及基于足端接触序列的非匀速运动建模。二者在传感器配置(高度/视角)、运动频率(1-

Studying…… 325

Android中实现点击两次返回键退出程序的效果总结

摘要:第一种办法响应Activity的onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序代码://记录用户首次点击返回键的时间privatelongfirstTime=0;/***第一种解决办法通过监听keyUp*@paramkeyCode*@paramevent*@return*/@OverridepublicbooleanonKeyUp(intkeyCode,KeyEve...

浅若清兮 428

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

按两次返回键,退出程序,或者按home键退出程序

前者:MainActivity: package com.example.zong_zhishi; import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import android.view.Menu; import android.widget.To...

diantangjiong3675的博客 215

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Android常用的代码片段

安装程序的方法: StringfileName="123.apk"; StringfilePath="/sdcard/"+fileName; Intentintent=newIntent(Intent.ACTION_VIEW); intent...

106

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[Android] Android 两次Back键点击退出程序

android 两次返回键点击退出App应用

csdn_lexli的博客 952

Android连续点击两次Back键退出程序

思路:记录上次点击的时间,与本次点击的时间比较,当两次时间间隔小于一定值时,退出,否则提示“再按一次退出程序”,同时更新上次点击时间  private long firstTime = 0;     @Override  public boolean onKeyUp(int keyCode, KeyEvent event) {         // TODO Auto-ge

Caesardadi的专栏 1万+

Android 实现按两次返回键退出程序

很简单的代码。为了像我一样的菜鸟,随便说说思路。 重写onKeyDown()方法监听返回键。每次点击返回键,设置isExit=true hasTask=true,同时启动Timer。两秒后Timer自动启动task,重置isExit和hasTask。 这两秒内如果再次点击返回键,则退出。 @Override public boolean onKeyDown(int keyCod

Cc.cc.c's新手笔记 1534

安卓---连续点击两次返回键退出程序---二级界面的退出程序

法一:实现方式,通过记录按键时间计算时间差实现: import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends Activity { ...

Barry1115的博客 283

Android 点击两次Back键监听退出程序

本篇Blog记录点击两次Back键退出程序的写法 效果如下 我们通过该方法来实现 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } 然后说明一下这两个方法的作用 onKeyDown(): 当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理。 默认按下KEYCODE_BACK键后会回到.

阿秋的Blog 340

Android点击两次返回键退出程序

Android应用中退出应用程序通常有两种做法,一种是使用选择对话框询问用户是否退出应用程序,另外一种是快速点击返回按钮两次然后退出应用。其中第二种实现方式较为普遍,而且我个人认为这种方式用户体验性要好点。下面,我介绍两种常用的点击两次返回退出应用的实现方式。 1. 通过标识变量进行控制。首先定义一个布尔变量,赋初始值false。然后监听手机返回按钮,当点击返回按钮时,如果该布尔变量值为fals

老胡 7275

android点击两下退出程序,Android实现双击返回键退出应用实现方法详解

前言现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实现这个功能效果图实现第一种办法响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序代码://记录用户首次点击返回键的时间private long firstTime = 0;/*** 第一种解决办法 通过监听keyU...

weixin_36462387的博客 1176

Android主界面连续两次点击物理返回键提示退出应用功能实现

实现内容:当点击一次 back 键时,程序提示“再按一次退出程序” ,当点击两次 back 键,两次之间的时间小于 3s 时,App就退出。 实则是对按键back监听。重写onKeyDown(),监听back声明两个常量: /** 上次点击返回键的时间 */ private long lastBackPressed; /** 两次点击的间隔时间 */ private sta...

liumce的博客 1721

Android 双击返回键退出程序 实现

From:http://blog.youkuaiyun.com/woaixiaozhe/article/details/7575976 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态。定时器是每次用户按下返回键才去创建。 代码如下: [java] view p

dongge825的专栏 863

返回键退出程序与不退出程序应用

    今天公司老板突然跟我说客户这有一个需求想要实现一下,就是在使用app时,按返回键时,不退出应用程序,相当于home 键的功能,然后我就将退出程序的功能和不退出程序的功能进行了一个比较在这里。    1,首先是第一种:当按一次返回键就退出程序,当再次进入app,应用相当于重新进去;方法就是在 activity中什么都不用重写方法,直接实现所有的功能就可以;    2,第二种:当按两次返回键时...

naying_的博客 3240
上一篇: Java面向对象及个人的理解
下一篇: Service的分类以及不同种类的服务在生命周期中如何执行
Fast_Soo_So
博客等级 码龄10年 1粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值