Android - 判斷當前應用執行在前臺還是後臺
阿新 • • 發佈:2019-01-10
判斷android當前執行在前臺還是後臺,有兩種解決方案:
第一種:當app1開啟顯示在最上面頁面時返回true, 但是當app1開啟執行在後臺,app開啟執行在最上面頁面時也返回true。
private boolean isTopActivity() { ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0).topActivity; BreezeLog.d(TAG,"pkg:"+cn.getPackageName()); BreezeLog.d(TAG, "cls:"+cn.getClassName()); List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); if (taskInfo.size() > 0) { if (PACKAGE_NAME.equals(taskInfo.get(0).topActivity.getPackageName())) {return true; } } return false; }
第二種:當app1開啟顯示在最上面頁面時返回true, 但是當app1開啟執行在後臺,app開啟執行在最上面頁面時返回false。
private boolean isTopActivity() { ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> appProcesses = am.getRunningAppProcesses();if (appProcesses == null) { return false; } for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(PACKAGE_NAME) && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { return true; } } return false; }