连续点击返回键退出Android 应用
问题
业务需要,在主界面连续点击返回键退出应用,记录一下。
解决方案
先说结论,在主界面Activity中添加如下代码
/*** 记录上次点击返回键时间*/private long lastClickTime = 0;/*** 两次回退点击时间间隔设置不小于2s*/public static final long TIME_INTERVAL = 2000;......@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {exitApp();return false;}return super.onKeyDown(keyCode, event);}/*** 应用退出*/private void exitApp() {if (System.currentTimeMillis() - lastClickTime > TIME_INTERVAL) {//距离上次退出时间超过默认间隔时间,则认为不是连续点击,并记录新的点击时间Toast.makeText(this, "连续两次点击退出应用",Toast.LENGTH_SHORT).show();lastClickTime = System.currentTimeMillis();} else {this.finish();System.exit(0);}}......
- 1、 新增变量
lastClickTime记录上次点击返回键时间。 - 2、 新增时间间隔常量
TIME_INTERVAL。 - 3、 在回调方法
onKeyDown中监听每次点击返回键。 - 4、 一旦点击返回键,且距离上次点击事件小于
TIME_INTERVAL(这里设为两秒,实际可根据业务自行调整),则认为连续点击,退出应用。否则吐司弹窗提示,并记录最新点击时间。
混合开发应用的场景补充
- 在某些混合开发的App中,主界面由
WebView控件构成,则需要考虑在每次点击返回键时,判断是否存在可回退Web页面。 - 如果有可回退Web页面,先回退网页,再判断是否连续点击退出应用。
代码如下:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// 是否可以回退网页if (keyCode == KeyEvent.KEYCODE_BACK) {if (webView.canGoBack()) {webView.goBack();return true;} else {exitApp();return false;}}return super.onKeyDown(keyCode, event);}
相关文章:
连续点击返回键退出Android 应用
问题 业务需要,在主界面连续点击返回键退出应用,记录一下。 解决方案 先说结论,在主界面Activity中添加如下代码 /*** 记录上次点击返回键时间*/private long lastClickTime 0;/*** 两次回退点击时间间隔设置不小于2s*/public static fi…...
【PyTorch】教程:torch.nn.Hardswish
torch.nn.Hardswish 原型 CLASS torch.nn.Hardswish(inplaceFalse) 参数 inplace (bool) – 内部运算,默认为 False 定义 Hardswish(x){0if x≤−3,xif x≥3,x⋅(x3)/6otherwise\text{Hardswish}(x) \begin{cases} 0 & \text{if~} x \le -3, \\ x & \te…...
nacos源码入门
nacos官方文档地址:nacos官方文档 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 简单来说,nacos就是一个注册中心、配置中心࿰…...
【记录】Samba|Windows 11的Samba连接切换用户
Samba是一个用于共享文件和打印机的网络协议,可以使不同的操作系统之间共享文件和资源变得容易。在Windows 11上,可以使用Samba来连接到网络共享。 如果您想在Windows 11上切换用户并连接到另一个Samba共享,可以按照以下步骤操作。 文章目录…...
vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用
vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用安装相关依赖安装Hi PrintJQuery引入依赖简单使用官方所有 打印示例安装相关依赖 安装Hi Print npm install vue-plugin-hiprintJQuery 因为 hi print 使用到了 JQuery 所以需要安装对应依赖 npm i jquery -…...
HBase常用Shell命令
HBase提供了一个非常方便的命令行交互工具HBase Shell。通过HBase Shell,HBase可以与MySQL命令行一样创建表、索引,也可以增加、删除和修改数据,同时集群的管理、状态查看等也可以通过HBase Shell实现。 一、数据定义语言 数据定义语言&…...
【阿里云】Apsara Clouder云计算专项技能认证-云服务器ECS入门,考试真题分享
以下是阿里云Apsara Clouder云计算专项技能认证-云服务器ECS入门真题汇总篇分享: 1.下列哪一个不是重置ECS密码的步骤? A. 查看实例详情 B.进入控制台 C.远程连接ECS D.点击控制台“概览” 2.针对云服务器ECS安全组说法正确的是 A.是一种物理防火墙 B.仅用于控制…...
怎样编写java程序
搭建好了Java开发环境之后,下面就来学习一下如何开发Java程序。为了让初学者更好地完成第一个Java程序,接下来通过几个步骤进行逐一讲解。 1.编写Java源文件 在D盘根目录下新建一个test文件夹,并在该文件夹中新建文本文档&#…...
面向对象设计模式:结构型模式之适配器模式
一、引入 Object Oriented Adapters 二、XX 模式 aka:Wrapper (包装器) 2.1 Intent 意图 Convert the interface of a class into another interface clients expect. 将一个类的接口转换成客户希望的另外一个接口. 作为两个不兼容的接口之间的桥梁 适配器模式使…...
Unity3D Shader系列之模板测试
一、 模板测试原理模板测试位于GPU渲染流水线的逐片元操作阶段,片元着色器完成之后就会进入模板测试,模板测试通过后再进入深度测试。我们的GPU中有一个模板缓冲区(Stencil Buffer)(Stencil即是模板的意思),其大小为整个屏幕大小*8位…...
机器学习中的数学——精确率与召回率
在Yolov5训练完之后会有很多图片,它们的具体含义是什么呢? 通过这篇博客,你将清晰的明白什么是精确率、召回率。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希…...
Oracle启动数据库报ORA-01102解决办法
1.机器启动之后登录服务器使用sqlplus / as sysdba 登录数据库发现数据库并没有启动之前把数据库服务添加过开机自启动 2.使用startup命令启动数据库报错了 SYSorcl>startup; ORACLE 例程已经启动。 Total System Global Area 2471931904 bytes Fixed Size 2255752 byt…...
Go 语言面向对象编程及实践
面向对象编程是计算机科学中的一种重要的编程方法,它将数据和处理它的代码组合成对象,并将这些对象组合成更大的程序。在 Go 语言中,我们同样可以使用面向对象编程的方式进行开发。本篇文章将介绍 Go 语言面向对象编程的概念、特性、使用方法以及实践技巧。 面向对象编程概…...
0102 MySQL05
1.约束 1.约束(constraint):在创建表时,可以给表中的字段加上一些约束,保证表中数据的完整性,有效性 常见的约束? 非空约束:not null 唯一性约束:unique 主键约束&am…...
[深入理解SSD系列 闪存2.1.3] 固态硬盘闪存的物理学原理_NAND Flash 的读、写、擦工作原理
2.1.3.1 Flash 的物理学原理与发明历程 经典物理学认为 物体越过势垒,有一阈值能量;粒子能量小于此能量则不能越过,大于此能 量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能 靠惯性过去。如果坡很高,不蹬自行车,车到一半就停住,然后退回去。 …...
洗地机哪家强?洗地机排行榜
随着清洁行业电器的开展,越来越多的新颖工具和电器开端进入消费者的生活之中。众所周知,面对美不胜收的清洁电器产品,选购也是一大头疼事,应该怎样选购洗地机等清洁电器呢,实在的用户体验和清洁效率莫过于消费者最看重…...
【Java基础 下】 029 -- 多线程
目录 一、为什么要有多线程? 1、线程与进程 2、多线程的应用场景 3、小结 二、多线程中的两个概念(并发和并行) 1、并发 2、并行 3、小结 三、多线程的三种实现方式 1、继承Thread类的方式进行实现 2、实现Runnable接口的方式进行实现 3、利用…...
R语言生物群落(生态)数据统计分析与绘图
查看原文>>>R语言生物群落(生态)数据统计分析与绘图 R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。本课程以生物群落数据分析中的最常用的统计方法回归和混…...
浙江首场千人大会现场爆满!实在智能九哥专题演讲:企业数字化转型,从实在RPA开始!
为帮助众多电商商家探索数字时代下新赛道、新趋势、新方向,制定有目标、有节奏的全年生意规划,“未来电商高峰论坛暨电商生态赋能大会”于3月4日在杭州正式拉开序幕。本次大会旨在向品牌电商企业主、运营操盘手分享数字电商时代的黄金趋势及运营策略&…...
Windows 上 执行docker pull命令 提示:The system cannot find the file specified.
错误提示error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version": open //./pipe/docker_engine: The system cannot find the file specified.解决办法在cmd 窗口中执…...
Perplexity经济新闻搜索:5步构建专属财经情报流水线(附2024最新API调用参数)
更多请点击: https://intelliparadigm.com 第一章:Perplexity经济新闻搜索 Perplexity 是一款基于大语言模型的实时信息检索工具,其核心优势在于融合权威信源与语义理解能力,特别适用于高频更新、高时效性要求的经济新闻领域。用…...
千问 LeetCode 2478.完美分割的方案数 public int beautifulPartitions(String s, int k, int minLength)
好的,这是 LeetCode 2478 "完美分割的方案数" 的 Java 实现。 解题思路 核心是动态规划 + 前缀和优化: 1. 定义状态:dp[i][j] 表示前 i 个字符分成 j 段的方案数 2. 状态转移:对于每个可能的分割点,需要满足: - 当前段长度 ≥ minLength - 当前段首字…...
告别快捷键混乱!PowerToys保姆级教程:让Win键位秒变Mac,开发效率翻倍
告别快捷键混乱!PowerToys保姆级教程:让Win键位秒变Mac,开发效率翻倍 作为一名长期在Windows和Mac双平台切换的开发者,最令人抓狂的莫过于快捷键的差异。每次从Mac切换到Windows,肌肉记忆总会在关键时刻背叛你——当你…...
asnumpy:NPU 原生的 NumPy 体验
如果你用 Python 做 AI 开发,大概率写过类似这样的代码:用 NumPy 预处理数据,把结果转成 PyTorch Tensor,推理完再转回 NumPy 做后处理。这个过程里数据在 CPU 和 NPU 之间来回拷贝了一次,拖慢了整体速度。 CANN 的 a…...
DeepSeek v3.2.1核心模块异常日志分析(生产环境未公开的5个堆栈陷阱)
更多请点击: https://kaifayun.com 第一章:DeepSeek v3.2.1核心模块异常日志分析(生产环境未公开的5个堆栈陷阱) 在高并发场景下,DeepSeek v3.2.1 的 model-router 与 kv-cache-sync 模块频繁触发非预期 panic&#x…...
【设计模式 10】抽象工厂:整体换季
这一课讲抽象工厂模式。什么在变:整个产品族要一起换,不能一个一个换。怎么挡:定义完整的体系标准,切换等于整个体系一起换。 凌晨三点四十七分,林衍站在婴儿床边,觉得自己在打一场没有作战方案的仗。 小家…...
RX65N嵌入式开发实战:从硬件设计到外设驱动与调试
1. 项目概述:为什么选择RX65N作为嵌入式开发的起点?在嵌入式开发领域,选择一个合适的微控制器(MCU)作为学习和项目实践的起点至关重要。它既要功能足够强大以覆盖主流应用场景,又要有完善的生态支持&#x…...
nuScenes数据集“平替”指南:Mini版够用吗?完整版、Test版到底怎么选?
nuScenes数据集选型实战指南:从Mini版到完整版的决策逻辑 第一次接触nuScenes数据集时,面对动辄几百GB的庞然大物和仅有3.9GB的mini版本,相信不少研究者都会陷入选择困难。这就像站在自助餐厅里,既想品尝所有美味,又担…...
Sora 2生成帧精度达99.7%的LUT匹配方案,DaVinci色彩科学全链路对齐指南
更多请点击: https://kaifayun.com 第一章:Sora 2与DaVinci整合的底层逻辑与技术共识 Sora 2 作为新一代视频生成基础模型,其核心能力建立在时空联合建模与长程依赖捕获之上;DaVinci 则是面向专业影视工作流的高性能非线性编辑与…...
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势 在蓝桥杯嵌入式竞赛中,LCD显示是基础但至关重要的环节。许多参赛选手在实现变量动态显示时,常常因为对sprintf函数的使用不当而陷入各种"坑"中——数据显示不全、…...
