![](/img/trans.png)
[英]How to input dynamic data (processName and pid) in ListView?
[英]Android - How to get the processName or packageName by using PID?
我的问题:在给定PID
情况下,我可以使用什么来检索某个进程的processName
或packageName
?
因为在我的任务管理器中我想使用PID同时使用killBackgroundProcesses代码来终止进程。 问题是我需要packageName / processName来做这件事,如果我让他们输入processName而不是只输入它的PID,那对用户来说会很麻烦。
这是我的任务经理的形象:
此代码是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.