android的application类中,onCreate()被执行多次的原因及解决方案

来源:互联网 发布:ccs软件百度云 编辑:程序博客网 时间:2024/05/19 01:59

当App中有多个进程的时候,android的application类中,onCreate()就会被执行多次,所以,我们就要加多一些判断的处理,避免除了主进程的其它进程浪费系统资源!

我们需要在application的onCreate()中:

private void initConfig() {        String curProcessName = Utils.getProcessName(mContext, android.os.Process.myPid());        if(curProcessName != null && curProcessName.equalsIgnoreCase(mContext.getPackageName())){            //初始化主线程资源        }else{            //初始化其它进程的资源        }    }


getProcessName方法的代码:
public static String getProcessName(Context cxt, int pid) {        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();        if (runningApps == null) {            return null;        }        for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {            if (procInfo.pid == pid) {                return procInfo.processName;            }        }        return null;    }


0 0