Android Native APP开发笔记:双击返回键退出应用&单击返回键返回桌面

2023-10-30

目的

双击返回键退出应用 很早之前就是Android中非常常见的一种功能,而目前好多安卓应用为了应用常驻都改为使用 单击返回键返回桌面 ,这篇文章将对相关内容做个简单记录。

基础说明

本文提到的这两个功能主要需要涉及的内容有下面一些。

返回键被按下事件回调:

// 方法一
@Override
public void onBackPressed() {
	// 返回键被按下
    // TODO
}

// 方法二
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // 判断是否是返回键
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        // TODO
        return true;
    }
    // 不是返回键则执行系统默认行为
    return super.onKeyDown(keyCode, event);
}

退出应用程序:

this.finish(); // 关闭activity
System.exit(0); // 退出进程

返回桌面:

// 方法一
moveTaskToBack(true);

// 方法二
Intent intent= new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

双击返回键退出应用

这个功能主要就是记录每次返回键被按下的时间,若两次按下事件间隔小于一定值则退出应用程序,代码与演示如下:

private long mPressedTime = 0; // 用于记录返回键按下时间

@Override
public void onBackPressed() {
    long mNowTime = System.currentTimeMillis(); // 获取当前时间
    if ((mNowTime - mPressedTime) > 2000) {
        // 和前一次按返回键时间差大于2000ms,给出提示并记录这次按键时间
        Toast.makeText(this, "再按一次返回键退出应用程序", Toast.LENGTH_SHORT).show();
        mPressedTime = mNowTime;
    } else {
        // 和前一次按返回键时间差小于等于2000ms,退出应用程序
        this.finish(); // 关闭activity
        System.exit(0); // 退出进程
    }
}

在这里插入图片描述

单击返回键回到桌面

这个功能就非常简单的,直接看下面演示即可:
在这里插入图片描述

总结

双击返回键退出应用单击返回键返回桌面 这两个功能总体来说实现起来非常简单,参考上面内容基本就够用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Native APP开发笔记:双击返回键退出应用&单击返回键返回桌面 的相关文章

随机推荐

  • 织梦dedecms模板乱码解决方法

    出现模板乱码这种问题大多数是因此dedecms模板编码问题导致的乱码 解决办法我们可以使用一些相关软件打开 然后设置页面编码即可了 DEdecms有gbk和utf 8两个版本的哦 乱码是因为字符编码不一致造成的 出现的原因有以下几种 一 你
  • 面试题:computed与watch的区别(转载)

    一 computed computed看上去是方法 但是实际上是计算属性 它会根据你所依赖的数据动态显示新的计算结果 计算结果会被缓存 computed的值在getter执行后是会缓存的 只有在它依赖的属性值改变之后 下一次获取comput
  • 关于修改ubuntu20.04分辨率的问题

    默认情况下 setting下的dsiplay是无法修改分辨率的 下面开始设置 第一步 添加分辨率 用于后面的配置文件参数修改 cvt 1920 1080 第二步 查看已经支持的分辨率 xrandr 第三步 修改配置文件 输入 sudo ge
  • 解决Python:'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence

    我在读取txt文件中报了一个 gbk codec can t decode byte 0xae in position 199 illegal multibyte sequence 解决方法 加上一个 encoding ISO 8859 1
  • AI指数报告:让我们从18个分立的视角来看AI

    AI指数报告 让我们从18个分立的视角来看AI 最近 斯坦福 人工智能百年 AI100 专家小组 非盈利性项目AI Index 发起了一项AI指数报告 追踪学术界 产业界 开源软件和公共兴趣范畴的18个分立的视角评估人工智能活跃度 盘点计算
  • DVWA stored 初级

    这里name被限制长路了 是10 不影响 在message输入 在name随便输入 弹窗1 过
  • 【数模】拟合算法

    拟合算法的介绍 拟合和插值问题的对比 回顾 数模 插值算法 不同 插值算法 得到的多项式f x 要经过所有样本点 但若样本点太多 则该多项式次数过高 就会造成龙格现象 拟合问题 不用曲线一定经过给定的点 尽管分段可避免龙格现象 但多数情况更
  • python实现验证码识别

    前言 大家在做自动化的过程中 应该遇到过登录 需要输入验证码的场景 一般的话 解决方案就是 需要后台的开发同学提供万能验证码 这样每次都麻烦开发也不是很好 所以 还是自己搞一下把 一 图片识别 验证码识别 选择使用ddddocr这个开源库
  • Python爬虫:抓取多级页面数据

    前面讲解的爬虫案例都是单级页面数据抓取 但有些时候 只抓取一个单级页面是无法完成数据提取的 本节讲解如何使用爬虫抓取多级页面的数据 在爬虫的过程中 多级页面抓取是经常遇见的 下面以抓取二级页面为例 对每级页面的作用进行说明 一级页面提供了获
  • java 反射将字符串转换为对应的类型

    做反射的时候可能会有这种需求 给定一个字符串和一个类型 将字符串转换为指定的类型 public class TypeUtils public static Object stringToNullableTarget String strin
  • 妙用Update Select

    最常用的update语法是 UPDATE
  • 计算机键盘快速指南,如何练习盲打(快速学会键盘盲打技巧)

    如何练习盲打 快速学会键盘盲打技巧 在诸如记者招待会之类的信息发布场面里 大家会注意到 有很多人耳目关注着会场声响动静的同时 不用看自己的笔记本电脑键盘 双手就能在电脑键盘上快速地击键打字 把会议的内容现场实况记录下来 通过十指在键盘上流畅
  • uniPush2.0云函数

    首先 按照下面链接 把预备工作做完 基本可以实现dcloud后台网页推送 uniPush2 0 消息推送 没有白天的CXY的博客 CSDN博客 第二步 走完本流程后 会遇到各种坑 一个一个来踩 第一 客户端推送 由于uniapp文档紊乱 跳
  • Android, 关于ViewModel的一些使用小技巧。

    情景 app使用了navigation组件 用一个Activity装载了多个Fragment 通过Fragment间的跳转来实现页面间的切换 当 界面有A fragment 跳转到 B fragment时 会将部分参数字段传递给Fragme
  • mysql基于SSM的学生社团管理系统 毕业设计源码211531

    SSM学生社团管理系统设计与实现 摘 要 21世纪时信息化的时代 几乎任何一个行业都离不开计算机 将计算机运用于社团管理也是十分常见的 过去使用手工的管理方式对学生社团进行管理 造成了管理繁琐 难以维护等问题 如今使用计算机对社团的各项基本
  • flex中dispatchEvent的用法(自定义事件)

    Evevt和EventDispatcher类在 as3的 事件机制中是很重要的角色 dispatchEvent 是EventDispatcher类的一个事件发送方法 它可以发送出Event类或其子类的实例 在as3中所有的显示 对象都可以发
  • MySql数据库修改表字段date类型为datetime类型

    语法 ALTER TABLE 表 MODIFY COLUMN 字段 字段类型 DEFAULT 默认值 COMMENT 说明 例如 alter table t user modify column createTime datetime de
  • 【正点原子FPGA连载】 第三十二章基于lwip的TCP服务器性能测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    第三十二章基于lwip的TCP服务器性能测试实验 上一章的lwip Echo Server实验让我们对lwip有一个基本的了解 而Echo Server是基于TCP协议的 TCP协议是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计
  • 游戏服务器开发需要学习的技术

    一 游戏服务器编程语言的选择 所谓的游戏服务器编程语言其实有很多 基本上任何一种语言都可以作为游戏服务器的编程语言 这需要根据自己游戏的类型和要求加以选择 比如C Java Erlang go等等 目前我用过的只有C 和Java 但是以Ja
  • Android Native APP开发笔记:双击返回键退出应用&单击返回键返回桌面

    文章目录 目的 基础说明 双击返回键退出应用 单击返回键回到桌面 总结 目的 双击返回键退出应用 很早之前就是Android中非常常见的一种功能 而目前好多安卓应用为了应用常驻都改为使用 单击返回键返回桌面 这篇文章将对相关内容做个简单记录