如何获得系统正在运行的activity和services信息

来源:互联网 发布:ubuntu怎么卸载软件 编辑:程序博客网 时间:2024/04/30 07:15
public void run(){  
        String info =  "" ;  
        // 获取的正在运行的activity的最大数量(防止太多,系统承受不了啊)、  
        int maxNum = 40;  
        // ActivityManager的功能是为系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等  
        ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);  
          
        List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(maxNum);  
        for(ActivityManager.RunningTaskInfo taskInfo:runningTasks){  
            info+="一个任务信息开始:\n";  
            info+="当前任务中正处于运行状态的activity数目:"+taskInfo.numRunning;  
            info+="当前任务中的activity数目: "+taskInfo.numActivities;  
            info+="启动当前任务的activity名称:"+taskInfo.baseActivity.getClassName();  
              
         

注意:这里要给android.permission.GET_TASKS权限哦。

上面的代码,我们只能获取到运行中的task(任务),那么如何获得后台运行的service信息呢?

请看代码:

view plaincopy to clipboardprint?
  
        private void run2(){  
            String info = "";  
            int maxNum = 30;  
            ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  
            // 注意这里获取的方法和返回值的类型都变化了啊  
            List<ActivityManager.RunningServiceInfo> serivces = activityManager.getRunningServices(maxNum);  
            for(RunningServiceInfo service:serivces){  
                info = "一个service信息开始:\n";  
                info+="当前service的启动时间:"+service.activeSince;  
                info+="链接到当前service客户端的数量:"+service.clientCount;