按后退键的时候,让程序退出。

实现起来的思路:

1.捕获后退键被按了这个事件。

Java代码

@Override

publicbooleanonKeyDown(intkeyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_BACK ){

//DO SOMETHING

returntrue;

}

returnfalse;

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_BACK ){

//DO SOMETHING

return true;

}

return false;

}

2-1.通过intent返回都主屏幕中

Java代码

@Override

publicbooleanonKeyDown(intkeyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() ==0) {// 按下的如果是BACK,同时没有重复

Intent home =newIntent(Intent.ACTION_MAIN);

home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

home.addCategory(Intent.CATEGORY_HOME);

startActivity(home);

}

returnsuper.onKeyDown(keyCode, event);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复

Intent home = new Intent(Intent.ACTION_MAIN);

home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

home.addCategory(Intent.CATEGORY_HOME);

startActivity(home);

}

return super.onKeyDown(keyCode, event);

}

2-2.记录所有打开的activity,关闭的时候将所有的activity关闭

使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器专门负责存储新开启的每一个Activity

MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作

Java代码

publicclassMyApplicationextendsApplication {

privateList activityList =newLinkedList();

privatestaticMyApplication instance;

privateMyApplication()

{

}

//单例模式中获取唯一的MyApplication实例

publicstaticMyApplication getInstance()

{

if(null== instance)

{

instance =newMyApplication();

}

returninstance;

}

//添加Activity到容器中

publicvoidaddActivity(Activity activity)

{

activityList.add(activity);

}

//遍历所有Activity并finish

publicvoidexit()

{

for(Activity activity:activityList)

{

activity.finish();

}

System.exit(0);

}

}

public class MyApplication extends Application {

private List activityList = new LinkedList();

private static MyApplication instance;

private MyApplication()

{

}

//单例模式中获取唯一的MyApplication实例

public static MyApplication getInstance()

{

if(null == instance)

{

instance = new MyApplication();

}

return instance;

}

//添加Activity到容器中

public void addActivity(Activity activity)

{

activityList.add(activity);

}

//遍历所有Activity并finish

public void exit()

{

for(Activity activity:activityList)

{

activity.finish();

}

System.exit(0);

}

}

在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中

Java代码

MyApplication.getInstance().addActivity(this);

MyApplication.getInstance().addActivity(this);

在需要结束所有Activity的时候调用exit方法

Java代码

MyApplication.getInstance().exit();

android返回键返回指定目录,Android 返回键返回到指定的Activity相关推荐

  1. 【Android 逆向】应用安装目录 ( Android 应用的默认安装目录 | 查找 Android 应用的安装目录 | 查询当前正在运行的应用包名 | 根据包名查询应用安装路径 )

    文章目录 一.Android 应用的默认安装目录 二.查找 Android 应用的安装目录 1.查询当前正在运行的应用包名 2.根据包名查询应用安装路径 一.Android 应用的默认安装目录 应用安 ...

  2. android 无法显示SD卡目录,Android studio无法在SD卡上创建新目录?

    我使用名为scanlibrary的库来扫描照片,然后将它传递给tess-two来执行OCR过程.问题是,在目录"ScanDemoExample"不被创建因此tessdata文件不会 ...

  3. php遍历指定目录下的文件,PHP遍历指定目录下所有文件和目录

    PHP目录遍历程序代码,将显示指定目录下的所有文件和文件夹,并列出这些文件,最后统计出文件总数.使用的PHP函数有is_dir.closedir.scan_dir等. 本代码比较准确,可判断目录下的是 ...

  4. android选择指定目录,android之app新建目录位置选择

    安卓应用想新建目录存放文件,有以下几种选择: 1./data 在/data根目录下建目录需要system权限. app可在/data/data/apppackage下建目录默认权限是700,且普通权限 ...

  5. android读取另一个app目录,android在一个app程序中,打开另一个app的方法

    首先获取包名: 使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.以微信为例,命令行中切换到aapt.exe目录执行:aapt dump badg ...

  6. 复制指定目录包括子目录下的所有指定类型的文件

    将下列代码复制到txt文本中.保存成后缀名为.bat的文件.然后运行即可. 方案:复制指定文件夹下及其所有子文件夹内 后缀名相同的文件.bat 代码: xcopy /e d:\a\*.txt e:\2 ...

  7. linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)

    情景:需要删除以201812开头的.6天前修改的文件夹(文件夹里包含文件).鼓捣了好一会,开始用find /home/users/niu/test/log/ -name '201812*' -type ...

  8. (压缩包在本地目录或由链接请求)使用jszip解压文件或compressing解压文件到指定目录,写个node脚本

    使用jszip解压文件与compressing解压zip文件到指定目录 一.介绍jszip和compressing模块 jszip和compressing模块都是可以压缩和解压缩zip文件,都可以通过 ...

  9. 如何用Windows命令提示符(cmd.exe)进入指定目录

    如何用Windows命令提示符(cmd.exe)进入指定目录 一.Windows命令提示符是什么? Windows 命令提示符(cmd.exe)是 Windows NT 及以后的 Windows 系统 ...

最新文章

  1. 自动驾驶公司Momenta完成超2亿美元融资,估值超10亿美元
  2. 学习 Spring (十七) Spring 对 AspectJ 的支持 (完结)
  3. 【数学建模】图论模型-Floyd算法(最优化)
  4. 关于混合使用智能指针和内置指针的自己的问题和自己的见解(问题搜集中)这个帖子有待解决的问题
  5. 关于new handler与default、delete关键字
  6. 容器操作系统虚拟化_为什么操作系统在容器化世界中很重要
  7. 推荐系统技术演进趋势:排序篇
  8. java spark yarn_《Spark官方文档》在YARN上运行Spark
  9. mysql字符串处理函数left()、length()使用
  10. linux常用命令(3)——系统管理1
  11. GridView 72般绝技(一)
  12. Hive-3.1.3安装配置运行
  13. 经典的哲学家就餐问题
  14. 计算机公式sin,三角函数换算(新版中文三角函数计算器)
  15. Linux 编程 —— 进程间的通信 之 消息队列(zmq socket 学习笔记)
  16. 顺序表倒置java_数据结构-顺序表 java实现-Go语言中文社区
  17. 【无标题】vue 简单增删改查表格
  18. 谷歌注册手机无法验证解决办法2023亲测有效非常迅速
  19. 计算机CAD技术在工程设计中的应用,研究在机械工程设计中CAD技术的运用
  20. 【面试题】Redis篇-常见面试题p1

热门文章

  1. Internet信息服务找不到
  2. linux常用命令(ubuntu)
  3. SAP NetWeaver 平台介绍
  4. Python之数据分析(Numpy的子模块:线性代数模块linalg、傅里叶变换模块fft)
  5. 初学者python笔记(类的装饰器、property方法、元类)
  6. 测试软件是否丢失数据,11种方法检测软件的可靠性
  7. 电脑音响怎么插_BMW宝马5系G38改原厂全套哈曼卡顿音响+无钥匙进入,厚街宝马原厂改装中心...
  8. 矩阵分析 第三章 内积空间 正规矩阵 Hermite矩阵
  9. 高通的快充协议_高通QC5.0快充发布:百瓦级时代,高通被国产厂商牵着鼻子走了?...
  10. java reactor例子_ProjectReactor响应式编程入门例子