2011-07-06 121 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) 

    { 

    } 
} 

我希望這對你有幫助。