簡體   English   中英

Android - 如何使用PID獲取processName或packageName?

[英]Android - How to get the processName or packageName by using PID?

我的問題:在給定PID情況下,我可以使用什么來檢索某個進程的processNamepackageName

因為在我的任務管理器中我想使用PID同時使用killBackgroundProcesses代碼來終止進程。 問題是我需要packageName / processName來做這件事,如果我讓他們輸入processName而不是只輸入它的PID,那對用戶來說會很麻煩。

這是我的任務經理的形象:

http://i.imgur.com/1zpXg.jpg

此代碼是Yaqub代碼的簡化版本。 我在Util類中使用它作為靜態方法:

public static String getAppNameByPID(Context context, int pid){
    ActivityManager manager 
               = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    for(RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()){
        if(processInfo.pid == pid){
            return processInfo.processName;
        }
    }
    return "";
}

您好,您可以使用此代碼,它適用於Android 2.3.3:

private String getAppName(int pID)
{
    String processName = "";
    ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
    List l = am.getRunningAppProcesses();
    Iterator i = l.iterator();
    PackageManager pm = this.getPackageManager();
    while(i.hasNext()) 
    {
          ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
          try 
          { 
              if(info.pid == pID)
              {
                  CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
                  //Log.d("Process", "Id: "+ info.pid +" ProcessName: "+ info.processName +"  Label: "+c.toString());
                  //processName = c.toString();
                  processName = info.processName;
              }
          }
          catch(Exception e) 
          {
                //Log.d("Process", "Error>> :"+ e.toString());
          }
   }
    return processName;
}

殺掉其他進程一般都是壞主意..

看看這個問題Android進程殺手android任務殺 ..

此博客Android:使用processid(pid)和包名稱殺死正在運行的進程

並為您的問題如何從pid獲取進程名稱

就像是,

安裝終端仿真器 ,啟動它並運行:

ps | grep 10058

ps列出了所需ID的進程和grep過濾器。

但這僅在運行命令時運行應用程序時才有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM