当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; }