出现的问题:

当项目中配置了 android:process=":remote" 这个属性之后,会新增一个私有进程(包名+":remote"),这个进程里的Application也会走生命周期,然后onCreate里面一些初始化功能就会重复执行。

处理:在Application的onCreate()方法里面,先判断进程名是否是主进程(主进程名:包名),如果是主进程才执行后面的方法,如果不是主进程(比如remote 私有进程)就直接return。

代码:

自定义的Application:

@Override    public void onCreate() {        //**********多进程执行处理(onCreate方法仅在主进程执行一次)        String processName = getProcessName(this, android.os.Process.myPid());        if(!getPackageName().equals(processName)){//非主进程不执行onCreate里面操作            return;        }        Log.d(TAG, "MyApplication-onCreate");                super.onCreate();        //下面是业务初始化内容。。。        //do something...}//获取当前进程名public static String getProcessName(Context cxt, int pid) {        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);        List runningApps = am.getRunningAppProcesses();        if (runningApps == null) {            return null;        }        for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {            if (procInfo.pid == pid) {                return procInfo.processName;            }        }        return null;    }

 

更多相关文章

  1. WebView---Android中调用js方法及js中调用本地方法
  2. Linux下的Android电话管理软件――QtADB(安装启动方法)
  3. Android IPC(跨进程通信)之AIDL
  4. Android的进程回收
  5. Android adb功能使用方法
  6. Android 4.4 全套源码及子模块源码的下载方法
  7. android解析XML文件的三方法之SAX

随机推荐

  1. android launcher 启动流程
  2. Android原生项目集成Flutter解决方案
  3. [笔记]适配Android(安卓)11(api 30) (分
  4. 布局与样式
  5. Android(安卓)五大布局(自我学习向)
  6. React Native 中Android实现ImagePicker
  7. android Jni 需要注意的地方
  8. Android文件存储总结
  9. Android(安卓)内部存储与外部存储的路径
  10. 一看就会Android之分组列表组件Expandabl