由于项目需要,很多时候使用新进程来运行服务等类似的需要,一般常用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 ;

更多相关文章

  1. Android(安卓)js和原生交互
  2. Android(安卓)View框架总结(一)
  3. android绑定远程服务以及android接口定义语言(aidl)
  4. Android(安卓)5 消息机制源码分析
  5. android 关于Location of the Android(安卓)SDK has not been se
  6. Android(安卓)ScrollView初始位置不在顶部的解决方法
  7. android service
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. android 内存优化
  2. Android(安卓)Fastboot源码分析
  3. Android: Intent.ACTION_SEND分享文件
  4. Android对Window对象的管理机制分析
  5. Android(安卓)图片缩放
  6. Android(安卓)ContentObserver ---拦截短
  7. Android(安卓)Bootloader - Main system
  8. android 8.0 wifi-host ap 开关操作
  9. Android的drawable文件夹的说明
  10. android获取系统时间