做项目的时候,遇到问题需要判断app是否运行在后台,问了一下度娘,顺利解决了问题,再次深表感谢并将答案记录在此。
- 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())) {
- /*
- BACKGROUND=400 EMPTY=500 FOREGROUND=100
- GONE=1000 PERCEPTIBLE=130 SERVICE=300 ISIBLE=200
- */
- Log.i(context.getPackageName(), "此appimportace ="
- + appProcess.importance
- + ",context.getClass().getName()="
- + context.getClass().getName());
- if (appProcess.importance != RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
- Log.i(context.getPackageName(), "处于后台"
- + appProcess.processName);
- return true;
- } else {
- Log.i(context.getPackageName(), "处于前台"
- + appProcess.processName);
- return false;
- }
- }
- }
- return false;
- }
本文提供了一种方法来判断Android应用是否处于后台状态。通过使用ActivityManager获取正在运行的应用进程列表,并检查当前应用的进程名称及重要性级别,可以准确判断应用是否处于前台。
634

被折叠的 条评论
为什么被折叠?



