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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM