从android中提取正在运行的进程

从android中提取正在运行的进程,android,Android,我正在使用此代码获取正在运行的进程 public class ProcessFragment extends ListFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getRunningProcess(); } private void getRunningProcess() { { final ActivityManager m

我正在使用此代码获取正在运行的进程

public class ProcessFragment extends ListFragment  {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getRunningProcess();
}
private void getRunningProcess() {
{
final ActivityManager manager = (ActivityManager)    getActivity().getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm;
List<RunningAppProcessInfo> runningProcesses = manager.getRunningAppProcesses();
if (runningProcesses != null && runningProcesses.size() > 0) {
setListAdapter(new ListAdapter(getActivity(), runningProcesses));   
    } else {    
Toast.makeText(getActivity().getApplicationContext(), "No application is running", Toast.LENGTH_LONG).show();
}
}
公共类ProcessFragment扩展了ListFragment{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getRunningProcess();
}
私有void getRunningProcess(){
{
最终ActivityManager=(ActivityManager)getActivity().getSystemService(Context.ACTIVITY_服务);
包装经理;
List runningprocesss=manager.getrunningappprocesss();
if(runningprocesss!=null&&runningprocesss.size()>0){
setListAdapter(新的ListAdapter(getActivity(),RunningProcess));
}否则{
Toast.makeText(getActivity().getApplicationContext(),“没有应用程序正在运行”,Toast.LENGTH\u LONG.show();
}
}
这是我的适配器

public class ListAdapter extends ArrayAdapter<RunningAppProcessInfo> {
private final Context context;
private final List<RunningAppProcessInfo> values;
public ListAdapter(Context context, List<RunningAppProcessInfo> values) {
super(context, R.layout.process, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.process, parent, false);
TextView appName = (TextView) rowView.findViewById(R.id.appNameText);
appName.setText(values.get(position).processName);
return rowView;
}
公共类ListAdapter扩展了ArrayAdapter{
私人最终语境;
私有最终列表值;
公共ListAdapter(上下文、列表值){
super(上下文、R.layout.process、值);
this.context=上下文;
这个值=值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图行视图=充气机充气(R.layout.process,父级,false);
TextView appName=(TextView)rowView.findViewById(R.id.appNameText);
setText(values.get(position.processName);
返回行视图;
}
}


我正在获取软件包名称列表。如何获取应用程序名称???

在大多数情况下,您应该能够使用:

PackageManager pm = this.getPackageManager(); //assuming you're running from an activity
                                              //use a context otherwise
ApplicationInfo appInfo = pm.getApplicationInfo(values.get(position).processName, PackageManager.GET_META_DATA);
String appName = pm.getApplicationLabel(appInfo).toString();
appName.setText(appName);

@BirajZalavadia No mate,我实际上使用OP的上下文和设置为OP编写了代码。他实际上可以将此代码放入他的应用程序中,而且它会工作。另一方面,你只是粘贴了别人的答案,甚至没有尝试将其应用于原始问题。我不只是复制和粘贴我在pc上的测试,然后发布它。然而,我拒绝了投了你的票,但现在投了更高的票