android 判断应用是否在后台的工具类

public class ActivityUtils {
/**
 * 当前应用是否处于前台
 * @param context
 * @return true 在前台   false 在后台
 */
public static boolean isForeground(Context context) {
        if (context != null) {
            ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            List<ActivityManager.RunningAppProcessInfo> processes = activityManager.getRunningAppProcesses();
            for (ActivityManager.RunningAppProcessInfo processInfo: processes) {
            LogUtils.e("----processInfo.importance"+processInfo.importance+"------100");
                if (processInfo.processName.equals(context.getPackageName())) {
                    if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                        return true;
                    }
                }
            }
        }
        return false;
    }


/**
*  方法二 测试是否应用是否在后台 
* @param context
* @return
*/
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())) {
Log.e("ActivityUtils", "appProcess.processName---"
+ appProcess.processName
+ "------context.getPackageName()---" + context.getPackageName());
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
Log.e("后台", appProcess.processName);
return true;
} else {
Log.e("前台", appProcess.processName);
return false;
}
}
}
return false;
}


/**
*  方法一 判断当前应用程序处于前台还是后台
* @param context
* @return
*/

public static boolean isApplicationBackground(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())) {
Log.e("ActivityUtils", "后台" + "topActivity.getPackageName()"
+ topActivity.getPackageName()
+ "context.getPackageName()" + context.getPackageName());
return true;
}
}
Log.e("ActivityUtils", "前台");
return false;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值