1. 程式人生 > >Android - 判斷當前應用執行在前臺還是後臺

Android - 判斷當前應用執行在前臺還是後臺

判斷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; }