Android判断当前App是在前台还是在后台
作者:xx326664162 发布时间:2022-09-20 10:37:49
标签:android,app,后台,前台
本文实例为大家分享了Android判断当前App状态的具体实现代码,供大家参考,具体内容如下
第一种:
/**
*判断当前应用程序处于前台还是后台
*
* @param context
* @return
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
上面这段代码是需要一个权限的:
< uses-permission Android:name=”android.permission.GET_TASKS” />
第二种:
下面这段代码是我最新发现,无需权限,妥妥滴:
不过我稍微做了调整,后台分为:service后台和activity后台,这里认为不是前台的都认为后台。
•service运行在后台,appProcess.importance = IMPORTANCE_SERVICE,
•没有service运行的后台,
public static boolean isBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
System.out.print(String.format("Foreground App:", appProcess.processName));
return false;
}else{
System.out.print("Background App:"+appProcess.processName);
return true;
}
}
}
return false;
}


猜你喜欢
- 传统的多分支方式(圈复杂度为6):public String order(String type) { if ("1&
- 前面的文章有讲到微信的一系列开发文章,包括token获取、菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们
- 在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1、什么是SQLite 2、Android中使用SQL
- 本文较为详细的分析了vc提示unexpected end of file found的原因。分享给大家供大家参考。具体分析如下:预编译出错,
- 系统的基本架构 我们假设一个系统System包含Service客户服务中心、Shop网上购物中心和Office网上办公中心三个独立的网站。
- 本文实例讲述了C#遍历子目录的方法。分享给大家供大家参考。具体实现方法如下:DirectoryInfo directoryInfo = ne
- 使用对象初始值设定项初始化对象可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数。下面的示例演示如何将对象初始值
- 前言相信有很多小伙伴,在日常的开发中都有遇到过需要调用第三方接口的需求吧,但是自己有没有写过接口提供给第三方使用呢,常规的都是我们调用别人的
- 一、配置xml路径mybatis-plus:mapper-locations: classpath:mapper/*.xml二、编写Mapp
- 本文实例为大家分享了android实现简单时钟的具体代码,供大家参考,具体内容如下attrs定义如下<?xml version=&qu
- 我们从jdk8说起。主要是四个随机数生成器。神马?有四个?接下来我们简单说下这几个类的使用场景,来了解其中的细微差别,和api设计者的良苦用
- springboot连接sqllite的坑2021-01-04 13:54:14.178 SvUSService [main] ERROR
- 线程封闭线程封闭一般通过以下三个方法:Ad-hoc线程封闭:程序控制实现,最糟糕,忽略堆栈封闭:局部变量,无并发问题ThreadLocal线
- 前言我们经常会被问到这么一个问题:SpringBoot相对于spring有哪些优势呢?其中有一条答案就是SpringBoot自动注入。那么自
- 简介机器可以读,人为什么不能读?只要我们掌握java class文件的密码表,我们可以把二进制转成十六进制,将十六进制和我们的密码表进行对比
- 本篇介绍线性图标RecyclerLineChart 的绘制,对于图表的公共部分X、Y轴,背景Board等的绘制先前章节已经有过介绍,这里不再
- 1.用途在SpringBoot中,通过jasypt可以进行加密解密. 这个是双向的, 且可以配置密钥.2.使用:2.1通过UT创建工具类,并
- IntelliJ IDEA最佳配置IntelliJ IDEA 分为两个版本:旗舰版(Ultimate)和社区版(Community)。旗舰版
- 在前面都写到用AsyncTask来获取网络中的图片。其实利用消息机制也能获取网络中的图片,而且本人感觉用消息机制还是挺简单的。消息机制的图解
- 内容:1、滑动优化(滑动时不加载图片,停止才加载)2、第一次进入时手动加载代码如下:1、界面布局<?xml version="