android app 退出功能,Android 完美退出 App (Exit)
最近两天为了解决Android上面退出程序问题折腾了半死,在google & baidu 上面找了很久、很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行。
三个方法分别是:
killProcess, 这种方式当你kill后 Activity 会返回到上一个Activity
Android Level 8(包含8)前使用一个API来操作,Level8以后又是另外一种,所以不能通用
使用 FLAG_ACTIVITY_CLEAR_TOP,从 A 到 B
下面介绍自己的方式:
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
使用全局变量。对了,第一个想到的就是继承 Application,代码入下。
public class AgentApplication extends Application {
private List activities = new ArrayList();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
onDestroy();
System.exit(0);
}
}
然后在 Activity onCreate 的时候来调用 addActivity (),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用 this.getApplication() 就可以了。
最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
运行以上代码后,在LogCat 中会出现一行提示:
Process 包名 (pid xxxxx) has died. 证明你的程序退出了。现在你可以测试了。
android app 退出功能,Android 完美退出 App (Exit)相关推荐
- android app 退出功能,Android 应用技巧: 手把手教你 优雅实现 “一键退出 App”
前言 在 Android开发中,会经常存在 "一键退出App" 的需求 但市面上流传着 太多不可用的"一键退出App"功能实现 本文将全面总结"一键退 ...
- android 退出功能,android中activity连按两次返回键退出功能
直接写一个基类BaseActivity.java其它Activity都继承它就可以啦package com.main; import android.app.Activity; import andr ...
- android app 天气功能,Android天气预报app改进版
最近总是有人来和我说我以前写的一个小app无法正常获取数据~Android简易版天气预报app 今天就又运行了下来查找问题,发现或许是接口有限制吧,不能在多台手机使用同个apikey 然后,发现了我写 ...
- android中英文切换功能,Android APP 中英文切换
实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...
- android 选择答题功能,Android APP编写简单答题器
本文为大家分享了Android APP编写的简单答题器,此答题器可以通过Next按钮选择下一题,新写题目的类Question,有两个成员变量. java代码: package com.android. ...
- Android开启手电筒功能(完美适配Android4x,5x,6x)
原文http://blog.csdn.net/mynameishuangshuai Android4x.5x.6x的手电筒开启方法,写成公共方法,分享给大家. 添加摄像机和闪光灯权限 <uses ...
- Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置
Android Camera Develop: add settings to camera app 概述 继上一篇实现了一个最简单的相机APP后,本篇主要介绍实现相机的各种偏好设置,比如分辨率.闪光 ...
- android播放mp3功能,Android Studio实现简单音乐播放功能的示例代码
项目要求 基于Broadcast,BroadcastReceiver等与广播相关的知识实现简单的音乐播放功能,包括音乐的播放.暂停.切换.进度选择.音量调整. 设计效果 (进度条时间刷新功能还没有实现 ...
- android 选择答题功能,Android实现简单的答题系统
本文实例为大家分享了Android实现答题系统的具体代码,供大家参考,具体内容如下 Question: package com.example.lenovo.exam; /** * Created b ...
- android飞机大战功能,Android飞机大战
点击进行安装下载:https://www.pgyer.com/gUk0 快来玩一下 MainActivity package com.example.administrator.aircraftwar ...
最新文章
- 「蚂蚁呀嘿」克星来了!中科院23岁博士生开发「听音识人」,准确率近90%
- Centos7更改默认启动模式
- 成功解决absl.flags._exceptions.IllegalFlagValueError: flag --train_size=inf: Expect argument to be a str
- mysql查询去年本月的数据_MySQL查询本周、上周、本月、上个月份数据的sql代码...
- Prepo —— 图标转化器
- 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)...
- 由于两家重要零件厂商的疫情,iPhone 13备货可能受影响
- 微软7月修复117个漏洞,其中9个为0day,2个是Pwn2Own 漏洞
- jQuery基础之操作属性或文本及其样式 位置 尺寸的方法(重点,常用)
- 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源
- 戴尔r540服务器修改开机启动项,在BIOS设置中如何修改开机启动项
- 【标准算例数据源】作业车间、流水车间、柔性作业车间、其它
- Android 省电模式 降频吗,开启省电模式会降频吗
- bzoj 1233 干草堆tower 优先队列优化dp
- 微信V3 - 微信支付统一下单 --01
- 311 稀疏矩阵的乘法
- CoolHash数据库的产品宣言(Fourinone4.0版)
- 假币问题(八枚硬币及n枚硬币)
- Replication(上):常见复制模型分布式系统挑战
- 使用kingSCADA3.53连接mysql数据库
热门文章
- 计算机操作系统笔记第八章磁盘存储器的管理
- 计算机技术论文搜索引擎,垂直搜索引擎核心技术研究及展望论文
- FreeSwitch学习(1)-总体简介
- [luogu]P1852跳跳棋
- 未认证公众号接入公众号支付
- rss订阅 android,是的!我用这些软件订阅 RSS
- 《炬丰科技-半导体工艺》ZnO多晶薄膜异质结
- 使用@ConfigurationProperties注解获取为null的问题
- setuptools-scm was unable to detect version for‘…/…/某git包‘
- Debezium系列之:Debezium UI部署详细步骤