欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android判断当前应用程序处于前台还是后台的两种方法

程序员文章站 2022-06-29 09:30:17
1、通过runningtaskinfo类判断(需要额外权限): 复制代码 代码如下:/**     *判断当前应用程序处于前台还是...

1、通过runningtaskinfo类判断(需要额外权限):

复制代码 代码如下:

/**
     *判断当前应用程序处于前台还是后台
     */
    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类判断(不需要额外权限):

复制代码 代码如下:

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;
}