美文网首页
Application被多个进程多次创建问题

Application被多个进程多次创建问题

作者: Charein | 来源:发表于2018-02-28 18:07 被阅读0次

在Android中,Application类中我们通常会将一些应用初始化代码放在这里, 当同一个应用包含多个进程时,Application会被创建多次,导致初始化代码被重复执行,这样会导致一些意想不到的问题。

如果只让默认的进程在创建Application时执行初始化代码,就可以解决这种问题。下面贴上代码

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // other process will create app instance.
        if (!getPackageName().equals(
                getProcessName(getApplicationContext(), android.os.Process.myPid()))) {
            return;
        }
        
        // initialize code      
    }
    
    @Nullable
    public String getProcessName(Context cxt, int pid) {
        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
        if (am == null) {
            return null;
        }

        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
        if (runningApps != null && !runningApps.isEmpty()) {
            for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
                if (procInfo.pid == pid) {
                    return procInfo.processName;
                }
            }
        }

        return null;
    }
}

相关文章

  • Application被多个进程多次创建问题

    在Android中,Application类中我们通常会将一些应用初始化代码放在这里, 当同一个应用包含多个进程时...

  • 进程重复加载库问题

    一 问题概述 同一个库能不能被多个进程多次加载? 答案是it depends.让我们看看几种被多次加载的情况。ex...

  • Linux 系统中的硬链接和软链接

    现代操作系统为解决信息能独立于进程之外被长期存储的问题引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使...

  • Application

    Application继承与ContextWrapper继承与Context 跟随进程创建,应用有几个进程就有几个...

  • 冷启动白屏

    白屏原因 应用冷启动需要创建应用进程,创建Application,创建主界面调用onCreate(),onResu...

  • 2018-07-17 for fork

    【Goood转】linux中fork同时创建多个子进程的方法(二) 【转】fork同时创建多个子进程的方法

  • Linux中创建多个进程姿势

    在Linux中一个父进程创建多个子进程姿势

  • Android 进阶解密阅读笔记7

    Activity Manager Service 职责 在应用程序进程创建,应用程序的 Application 对...

  • Binder IPC

    本文整理自: 《Binder系列》 首先:启动属于不同进程的Activity会触发多次Application的on...

  • Android开发:为什么创建MyApplication类笔记

    Application类贯穿整个程序的生命周期,随着进程的加载对象就创建了,当进程销毁的时候Applicatio...

网友评论

      本文标题:Application被多个进程多次创建问题

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