您的位置:首页 > 移动开发

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

2018-03-06 17:10 281 查看
当使用百度地图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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: