判断是否主进程

先说下我遇到的问题吧。最近在项目里集成推送,发现推送都会启动一个推送进程,这样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;
    }

猜你喜欢

转载自blog.csdn.net/xiaoxiong1989821/article/details/89308706