当使用百度地图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; }