本文實例為大家分享了Android判斷當前App狀態的具體實現代碼,供大家參考,具體內容如下
第一種:
/** *判斷當前應用程序處于前臺還是后臺 * * @param context * @return */ 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; }上面這段代碼是需要一個權限的:
< uses-permission Android:name=”android.permission.GET_TASKS” />
第二種:
下面這段代碼是我最新發現,無需權限,妥妥滴:
不過我稍微做了調整,后臺分為:service后臺和activity后臺,這里認為不是前臺的都認為后臺。
•service運行在后臺,appProcess.importance = IMPORTANCE_SERVICE,
•沒有service運行的后臺,
public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(context.getPackageName())) { if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { System.out.print(String.format("Foreground App:", appProcess.processName)); return false; }else{ System.out.print("Background App:"+appProcess.processName); return true; } } } return false; }以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答