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