先说下我遇到的问题吧。最近在项目里集成推送,发现推送都会启动一个推送进程,这样app启动就会启动两个进程,项目Application就会分别执行两次oncreate()方法,而我项目本身是在oncreate()方法里去建立socket连接,所以会造成每启动一次app会创建两个socket对象。
//判断是否主进程
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;
}