多进程导致Application中onCreate执行多次

当使用百度地图sdk时,需要在xml中注册服务

<service  
    android:name="com.baidu.location.f"  
    android:enabled="true"  
    android:process=":baiduMap" >  
</service>  

这时Application中的onCreate会执行两次,如何只初始化一次

onCreate中

String processName = getProcessName(this);  
    if (processName != null) {  
        boolean defaultProcess = processName.equals(Constants.REAL_PACKAGE_NAME);  
        // 默认的主进程启动时初始化应用  
        if (defaultProcess) {  
            initAppForMainProcess();  
        }   
        // 其他进程启动时初始化对应内容  
        else if (processName.contains(":baiduMap")) {  
              
        } 
    }  

private String getProcessName(Context context) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
        if (runningApps == null) {
            return null;
        }
        for (ActivityManager.RunningAppProcessInfo proInfo : runningApps) {
            if (proInfo.pid == android.os.Process.myPid()) {
                if (proInfo.processName != null) {
                    return proInfo.processName;
                }
            }
        }
        return null;
    }



猜你喜欢

转载自blog.csdn.net/zyw0101/article/details/79460765