判断是APP是否在后台:
public static boolean isAppInBackground(Context context) { ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { List<ActivityManager.RunningAppProcessInfo> runningProcesses = manager.getRunningAppProcesses(); if (!StringUtil.isListEmpty(runningProcesses)) { for (ActivityManager.RunningAppProcessInfo runningProcess : runningProcesses) { if (runningProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { return false; } } } } else { String myPackage = context.getPackageName(); List<ActivityManager.RunningTaskInfo> task = manager.getRunningTasks(1); if (!StringUtil.isListEmpty(task)) { ComponentName info = task.get(0).topActivity; if (null != info) { return !myPackage.equals(info.getPackageName()); } } } return true; }
注意:在android5.0以上,只能判断是否前后台, 但是不能判断app是否是在最上面的那个APP。因为有可能有多个在前台的APP。
android app前后台判断
最新推荐文章于 2024-10-11 07:29:39 发布