美文网首页
application初始化多次的解决方案

application初始化多次的解决方案

作者: hewenle | 来源:发表于2018-09-12 17:08 被阅读0次

    首先application中的oncreate方法是可以执行多次的,每新开一个进程(不是线程),就会重新执行一遍oncreate方法。
    直接上解决方案,有时间的自己去查原理...

       @Override
    public void onCreate() {
        super.onCreate();
        //多线程防止多次初始化
        if (!getProcessName().equals(BuildConfig.APPLICATION_ID)) {
            return;
        }
        //写其他逻辑...
        
    }
    private String getProcessName() {
        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        if (am == null) {
            return "";
        }
        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
        if (runningApps == null) {
            return "";
        }
        for (ActivityManager.RunningAppProcessInfo proInfo : runningApps) {
            if (proInfo.pid == android.os.Process.myPid()) {
                if (proInfo.processName != null) {
                    return proInfo.processName;
                }
            }
        }
        return "";
    }

    相关文章

      网友评论

          本文标题:application初始化多次的解决方案

          本文链接:https://www.haomeiwen.com/subject/muqbgftx.html