2011-07-06 122 views
1

我想显示在列表视图中对我的Android所有正在运行的应用程序,我的代码显示出所有运行的应用程序,但在某些流程被抛出异常,PacketManager名未找到错误

原因:包管理器未找到与例外messege android.process.acore and android.process.media.

我使用下面的代码:

while(i.hasNext()) 
     { 
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next()); 

       try { 
       CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA)); 

       Process[j] = c.toString(); 
       ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Process); 

       ListView ProcessList = (ListView) findViewById(R.id.list); 
       ProcessList.setAdapter(adapter); 


        } 
       catch(Exception e) 
       { 
        System.err.println("Caught Exception: " 
          + e.getMessage()); 

       //Name Not FOund Exception 
       } 

回答

0

我使用运行设备的任务中使用它的给予打击代码。

 void getRunningTask() { 
    ActivityManager activityManager; 
    try { 
     activityManager = (ActivityManager) this 
       .getSystemService(ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> mRunningTasks = activityManager 
       .getRunningTasks(30); 
     for (RunningTaskInfo amTask : mRunningTasks) { 
      Log.d("TaskInfo", amTask.baseActivity.getClassName() + "(" 
        + amTask.id + ")"); 
      // arylistTask.add(amTask.baseActivity.getClassName()+"("+amTask.id+")"); 
     } 
     List<RunningServiceInfo> mserviceTasks = activityManager 
       .getRunningServices(30); 
     for (RunningServiceInfo serinfo : mserviceTasks) { 
      Log.d("TaskServerInfo", serinfo.process + "(" + serinfo.pid 
        + ")"); 
      arylistTask.add(serinfo.process + "(" + serinfo.pid 
        + ")".toString()); 
     } 
    } 

    catch (Exception e) 

    { 

    } 
} 

我希望这对你有帮助。