您的位置:首页 > 移动开发 > Android开发

android 5.0 获取最近运行的应用

2015-07-21 11:38 537 查看
android 5.0 获取最近运行的应用

由于考虑到安全性ActivityManager.getRunningTasks(),在5.0上已经deprecated了。

private String getLollipopRecentTask() { 

        final int PROCESS_STATE_TOP = 2; 

        try { 

            Field processStateField = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState"); 

            List<ActivityManager.RunningAppProcessInfo> processes = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getRunningAppProcesses(); 

            for (ActivityManager.RunningAppProcessInfo process : processes) { 

                if (process.importance <= ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && process.importanceReasonCode == 0) { 

                    int state = processStateField.getInt(process); 

                    if (state == PROCESS_STATE_TOP) { 

                        String[] packname = process.pkgList; 

                        return packname[0]; 

                    } 

                } 

            } 

        } catch (Exception e) { 

            throw new RuntimeException(e); 

        } 

        return ""; 

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: