app的退出检测是很难的,但是获取app“要退出”的状态就容易多了,退出的瞬间并不是真的退出了,ActivityManager要销毁activity,也需要一些时间和资源的。 
先见下面的运行效果: 

gif做的比价粗啊, 
两个activity的界面就不介绍了,主要是在APP启动的时候开启一个服务,application代码如下:

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Intent intent=new Intent(this,CheckExitService.class);getApplicationContext().startService(intent);}
}

service的代码如下:

public class CheckExitService extends Service {private String packageName = "test.minwenping.com.appexitdemo";@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onTaskRemoved(Intent rootIntent) {super.onTaskRemoved(rootIntent);Toast.makeText(CheckExitService.this, "App要退出了", Toast.LENGTH_SHORT).show();}//service异常停止的回调
    @Overridepublic int onStartCommand(Intent intent, int flags, int startId) {ActivityManager activtyManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activtyManager.getRunningAppProcesses();for (int i = 0; i < runningAppProcesses.size(); i++) {if (packageName.equals(runningAppProcesses.get(i).processName)) {Toast.makeText(this, "app还在运行中", Toast.LENGTH_LONG).show();}}return START_NOT_STICKY;}@Overridepublic void onCreate() {super.onCreate();Toast.makeText(CheckExitService.this, "App检测服务开启了", Toast.LENGTH_SHORT).show();}
}

还有尝试了守护线程,UI就只有一个线程,想从这方面下手,但是都失败了

转载于:https://www.cnblogs.com/zhujiabin/p/7560690.html

Android App退出检测相关推荐

  1. Android App 退出整个应用

    在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作: ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束: pub ...

  2. Android app 退出到后台,点击图标后再次重新启动

    app 退出到后台后,未被杀死,仍在运行,但是点击图标后会重新启动一次,再次重新创建一系列页面 项目中遇到了这个问题,非常影响用户的体验. 解决方法: 在APP的 启动页 中的onceate() 方法 ...

  3. android app 退出功能,Android 应用技巧: 手把手教你 优雅实现 “一键退出 App”

    前言 在 Android开发中,会经常存在 "一键退出App" 的需求 但市面上流传着 太多不可用的"一键退出App"功能实现 本文将全面总结"一键退 ...

  4. android app 退出功能,Android 完美退出 App (Exit)

    最近两天为了解决Android上面退出程序问题折腾了半死,在google & baidu 上面找了很久.很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行. 三个方法分别是: ki ...

  5. android app检测更新版本,《Android APP应该有的东西》之功能篇:版本检测更新

    <Android APP该有的东西>之功能篇:版本检测更新 自从友盟的自动更新下线之后,一大批app选择了自己写更新逻辑.是的,这里的逻辑并不复杂,完全可以自己写,但是不复杂不代表不麻烦, ...

  6. Android APP:检测实体按键事件

    Android APP:检测实体按键事件 一.检测点击按键事件一般不对手机上的输入按键进行处理,直接由系统按照默认情况操作.当然有时为了改善用户体验,需要让应用拦截按键事件,并进行额外处理. 要想监控 ...

  7. 基于yolov5的Android版本目标检测app开发(部署安卓手机)

    基于yolov5的Android版本目标检测app开发(部署安卓手机) 0.项目开发需求 (1)开发app部署到安卓手机 (2)支持VOC数据集上所有的目标检测 1.开发环境搭建 windows10+ ...

  8. android 组件导出安全,App安全检测实践基础:组件安全(二)

    系列文章 目录 Activity简述 Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务.Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通 ...

  9. java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...

    我在一个Activity中有以下功能 public void AppExit() { Editor edit = preferences.edit(); edit.putString("pr ...

最新文章

  1. P1972 [SDOI2009]HH的项链(离线树状数组)
  2. PyQt主窗体设置停靠窗口(QDockWidget)的叠加顺序
  3. 叶杰平:主流强化学习过分简化假设,与真实场景差距较大
  4. apache关于记录真实客户端ip和不记录健康检查日志
  5. python 只执行一次_Python 定时任务实现只执行一次的方法
  6. java 对象初始化属性,JAVA中类属性的初始化
  7. Mac终端显示 bogon的问题
  8. SAP HANA企业级培训系列课程第一部分
  9. 1使用技巧_【掘金使用技巧1】合成长周期k线的函数
  10. 网站集成QQ登录功能
  11. jQuery 左侧滑动
  12. [Project Euler]Problem 1:Multiples of 3 and 5
  13. Linux终端、控制台复制粘贴
  14. Mybatis源码学习笔记之Mybatis二级缓存
  15. 第七篇 nacos 注册中心
  16. 双臂路由实现vlan间通信
  17. 足球数据采集 php,如何获取足球【赛程结果】数据
  18. 03 分布式系统的技术栈
  19. 32位的md5校验程序
  20. 二进制与8,10,16转换

热门文章

  1. 深入了解以太坊虚拟机第5部分——一个新合约被创建后会发生什么
  2. 全能HOOK框架 JNI NATIVE JAVA ART DALVIK
  3. Android代码入侵原理解析(一)
  4. android6.0源码分析之Camera API2.0下的Capture流程分析
  5. ajax asp后台获取不到post数据,jQuery AJAX调用将数据发布到ASP.Net页面(不是Get但POST)...
  6. 2台服务器虚拟存储,虚拟存储的主要用途
  7. mysql sail_MySQL使用小记
  8. iphone导出照片到电脑_iphone照片导入电脑的方法
  9. 图像数据流识别圆形_人工智能大赛视觉处理(一)图形识别
  10. matlab中sum函数