判断app是否在后台

1、通过RunningTaskInfo类判断(需要额外权限):(测试通过5.1可用,权限名称修改

<uses-permission android:name="android.permission.REAL_GET_TASKS" />

/**
     *判断当前应用程序处于前台还是后台
     */
    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;

}

需要在AndroidMenitfest.xml文件中添加以下权限

<uses-permission android:name="android.permission.GET_TASKS" />

2、通过RunningAppProcessInfo类判断(不需要额外权限)(5.1以上系统不可用):

public static boolean isBackground(Context context) {

ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    for (RunningAppProcessInfo appProcess : appProcesses) {
         if (appProcess.processName.equals(context.getPackageName())) {
                if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
                          Log.i("后台", appProcess.processName);
                          return true;
                }else{
                          Log.i("前台", appProcess.processName);
                          return false;
                }
           }
    }
    return false;
}

时间: 2024-10-08 10:59:40

判断app是否在后台的相关文章

判断App是否在后台运行

在一些场景中,经常会需要判断App是否在后台运行,比如是否显示解锁界面,收到新消息是否显示Notification等.需求可能是多样化的,但所依仗的原理是相通的,今天Stay打算说说这些需求的最优解. 当然,Stay肯定不会说去for loop判断当前runningProcess或者runningTasks.比如: 这样 或者这样 这种方法调用起来感觉就像是在用Windows系统里的任务管理器,真是让人蛋疼.我们暂且不去计较性能问题,就说为啥Android连个像样的API都不给我,着实让人郁闷.

Android 判断app是否在前台还是在后台运行

Android 判断app是否在前台还是在后台运行,直接看代码,可直接使用. public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activity

App登陆java后台处理和用户权限验证

最近做一个app项目,后台我独自一人开发,开发任务顺序安排上没有把登陆,注册和权限验证这些基本功能放在第一阶段开发,现在是部分业务相关功能已经完成,但是用户入口竟然还没有,只能说明当初需求分析的时候还是太过于着急了,把最基本的用户入口给放到后面了. 现在就需要在现有代码的基础上添加用户登录和权限验证功能. 关于登录和权限验证方面,参照以前做iOS的开发经验,App端提供用户名和密码换取token,每次通过换取的token请求需要登陆权限的操作. 现在反过来,我就需要考虑下面几个问题: 1.在现有

Android 判断app何时是打开或者关闭的技术研究

只有两种东西能让一个团队团结,恐惧或忠诚.---<速度与激情7> 原文链接:http://engineering.meetme.com/2015/04/android-determine-when-app-is-opened-or-closed/ 存在的问题 Android开发中不可避免的会遇到需要检查app何时进入前台,何时被用户关闭.奇怪的是,要达到这个目的并不容易.检查app第一次启动并不难,但要判断它何时重新打开和关闭就没有那么简单了. 这篇文章将介绍一种判断app打开,重新打开和关闭

判断app是否运行于前台的两个方法

经常遇到这种情况,app收到新消息,如果app不在前台,则在手机通知栏发送一个通知提醒.那么,如何判断app是否处于前台 检验当前app是否运行于前台,而没有被最小化,上网查了一下解决方案,看到一段代码是可以实现的: public boolean isRunningForeground(Context context){ ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE

app与php后台接口登录认证、验证(seesion和token)

简要:随着电商的不断发展,APP也层次不穷,随着科技的发展主要登录形式(微信.QQ.账号/密码):为此向大家分享一下"app与php后台接口登录认证.验证"想法和做法:希望能够帮助困惑的伙伴们,如果有不对或者好的建议告知下:*~*!  一.登录机制 粗略分析:登录可分为三个阶段(登录验证.登录持续.退出登录):登录验证指客户端提供账号/密码(或第三方平台(微信.qq)获取openid/unionid)向服务器提出登录请求,服务器应答请求判断能否登录并返回相应数据:登录持续指客户端登录后

android判断app前后台状态

项目中需要在应用从后台切换到前台时做操作,自己实现了功能,但对这块的机制不太了解,So.找了相关的资料来学习总结下. !!! 部分资料来源https://github.com/wenmingvs/AndroidProcess !!!!!!整理了半天,跟程序抓了不少图来解释,尼玛发了以后图全没了,格式也乱,补了几张凑合看吧.   要了解这块,首先需要明白一些概念,app,process,task 1.process就是进程,是linux的概念. 2.一般一个app拥有一个uid,运行在一个进程里,

Android中判断app何时启动和关闭的技术研究

存在的问题 Android开发中不可避免的会遇到需要检查app何时进入前台,何时被用户关闭.奇怪的是,要达到这个目的并不容易.检查app第一次启动并不难,但要判断它何时重新打开和关闭就没有那么简单了. 这篇文章将介绍一种判断app打开,重新打开和关闭的技术. 让我们开始吧 判断一个app打开和关闭的关键在于判断它的activities是否正在前台显示.让我们先从简单的例子开始,一个只有一个activity的app,而且不支持水平模式.这样想要判断app是打开还是关闭只需要检查activity的o

判断App是否第一次安装启动

流行的解决方案是在大多数地方是用[NSUserDefaults standardUserDefaults的一个关键,如果它不存在,这意味着这是应用程序启动,否则,它不是第一次.然后,它说设置成后者在该方法的关键:“applicationWillTerminate:(UIApplication*)application”.这一解决方案非常好,直到我们得到的iOS 4.0.在iOS 4.0 +这种方法很少被称为(只适用于内存问题)在苹果的UIApplicationDelegate文档中所述....