当前位置: 代码迷 >> Android >> Android 获取进程名称(可以界别内部进程)
  详细解决方案

Android 获取进程名称(可以界别内部进程)

热度:78   发布时间:2016-04-28 01:49:56.0
Android 获取进程名称(可以区分内部进程)

? ?由于项目需要,很多时候使用新进程来运行服务等类似的需要,一般常用android:process=":newProcess"的方法。但是在android每新启动一个进程都需要重新加载Application的onCreate方法。我们就需要在onCreate里区分进程的名称来进行有选择性的加载一些资源。但是使用普通的context.getApplicationInfo.processName的方法都只能得到包名,无法区分同个包的进程。这里介绍一种其他可用的方法。

    public String getProcessName(Context context) {        String process = null;        if (context != null) {            int pid = android.os.Process.myPid();            ActivityManager am = (ActivityManager) context                    .getSystemService(Context.ACTIVITY_SERVICE);            List<ActivityManager.RunningAppProcessInfo> infoList = null;            try {                infoList = am.getRunningAppProcesses();                for (ActivityManager.RunningAppProcessInfo apps : infoList) {                    if (apps.pid == pid) {                        process = apps.processName;                    }                }            } catch (SecurityException e) {                // 进程可能不具备获取 getRunningAppProcesses 权限                e.printStackTrace();            }        }        return process ;

?

?

  相关解决方案