新上线的项目部分手机出现了同时初始化多次平台sdk的情况,这个sdk是写在主activity的 onCreate方法里面,这就意味着apk启动时主activity创建了多次。
网上搜索一番,给出的原因是手机打开应用时创建了多个进程(除了apk的主进程之外,还有一个后台service进程)
解决办法:
在oncreate里面做初始化的时候先判断一下进程是不是apk的主进程
//是否为主process
private boolean isMainProcess() {
ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
String mainProcessName = getPackageName();
int myPid = android.os.Process.myPid();
for (ActivityManager.RunningAppProcessInfo info : processInfos) {
if (info.pid == myPid && mainProcessName.equals(info.processName)) {
return true;
}
}
return false;
}