Android判断当前App是在前台还是在后台
本文实例为大家分享了Android判断当前App状态的具体实现代码,供大家参考,具体内容如下
第一种:
/** *判断当前应用程序处于前台还是后台 * *@paramcontext *@return */ publicstaticbooleanisApplicationBroughtToBackground(finalContextcontext){ ActivityManageram=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo>tasks=am.getRunningTasks(1); if(!tasks.isEmpty()){ ComponentNametopActivity=tasks.get(0).topActivity; if(!topActivity.getPackageName().equals(context.getPackageName())){ returntrue; } } returnfalse; }
上面这段代码是需要一个权限的:
<uses-permissionAndroid:name=”android.permission.GET_TASKS”/>
第二种:
下面这段代码是我最新发现,无需权限,妥妥滴:
不过我稍微做了调整,后台分为:service后台和activity后台,这里认为不是前台的都认为后台。
•service运行在后台,appProcess.importance=IMPORTANCE_SERVICE,
•没有service运行的后台,
publicstaticbooleanisBackground(Contextcontext){ ActivityManageractivityManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo>appProcesses=activityManager.getRunningAppProcesses(); for(ActivityManager.RunningAppProcessInfoappProcess:appProcesses){ if(appProcess.processName.equals(context.getPackageName())){ if(appProcess.importance==ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND){ System.out.print(String.format("ForegroundApp:",appProcess.processName)); returnfalse; }else{ System.out.print("BackgroundApp:"+appProcess.processName); returntrue; } } } returnfalse; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。