Android App退出检测
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退出检测相关推荐
- Android App 退出整个应用
在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作: ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束: pub ...
- Android app 退出到后台,点击图标后再次重新启动
app 退出到后台后,未被杀死,仍在运行,但是点击图标后会重新启动一次,再次重新创建一系列页面 项目中遇到了这个问题,非常影响用户的体验. 解决方法: 在APP的 启动页 中的onceate() 方法 ...
- android app 退出功能,Android 应用技巧: 手把手教你 优雅实现 “一键退出 App”
前言 在 Android开发中,会经常存在 "一键退出App" 的需求 但市面上流传着 太多不可用的"一键退出App"功能实现 本文将全面总结"一键退 ...
- android app 退出功能,Android 完美退出 App (Exit)
最近两天为了解决Android上面退出程序问题折腾了半死,在google & baidu 上面找了很久.很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行. 三个方法分别是: ki ...
- android app检测更新版本,《Android APP应该有的东西》之功能篇:版本检测更新
<Android APP该有的东西>之功能篇:版本检测更新 自从友盟的自动更新下线之后,一大批app选择了自己写更新逻辑.是的,这里的逻辑并不复杂,完全可以自己写,但是不复杂不代表不麻烦, ...
- Android APP:检测实体按键事件
Android APP:检测实体按键事件 一.检测点击按键事件一般不对手机上的输入按键进行处理,直接由系统按照默认情况操作.当然有时为了改善用户体验,需要让应用拦截按键事件,并进行额外处理. 要想监控 ...
- 基于yolov5的Android版本目标检测app开发(部署安卓手机)
基于yolov5的Android版本目标检测app开发(部署安卓手机) 0.项目开发需求 (1)开发app部署到安卓手机 (2)支持VOC数据集上所有的目标检测 1.开发环境搭建 windows10+ ...
- android 组件导出安全,App安全检测实践基础:组件安全(二)
系列文章 目录 Activity简述 Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务.Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通 ...
- java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...
我在一个Activity中有以下功能 public void AppExit() { Editor edit = preferences.edit(); edit.putString("pr ...
最新文章
- P1972 [SDOI2009]HH的项链(离线树状数组)
- PyQt主窗体设置停靠窗口(QDockWidget)的叠加顺序
- 叶杰平:主流强化学习过分简化假设,与真实场景差距较大
- apache关于记录真实客户端ip和不记录健康检查日志
- python 只执行一次_Python 定时任务实现只执行一次的方法
- java 对象初始化属性,JAVA中类属性的初始化
- Mac终端显示 bogon的问题
- SAP HANA企业级培训系列课程第一部分
- 1使用技巧_【掘金使用技巧1】合成长周期k线的函数
- 网站集成QQ登录功能
- jQuery 左侧滑动
- [Project Euler]Problem 1:Multiples of 3 and 5
- Linux终端、控制台复制粘贴
- Mybatis源码学习笔记之Mybatis二级缓存
- 第七篇 nacos 注册中心
- 双臂路由实现vlan间通信
- 足球数据采集 php,如何获取足球【赛程结果】数据
- 03 分布式系统的技术栈
- 32位的md5校验程序
- 二进制与8,10,16转换
热门文章
- 深入了解以太坊虚拟机第5部分——一个新合约被创建后会发生什么
- 全能HOOK框架 JNI NATIVE JAVA ART DALVIK
- Android代码入侵原理解析(一)
- android6.0源码分析之Camera API2.0下的Capture流程分析
- ajax asp后台获取不到post数据,jQuery AJAX调用将数据发布到ASP.Net页面(不是Get但POST)...
- 2台服务器虚拟存储,虚拟存储的主要用途
- mysql sail_MySQL使用小记
- iphone导出照片到电脑_iphone照片导入电脑的方法
- 图像数据流识别圆形_人工智能大赛视觉处理(一)图形识别
- matlab中sum函数