欢迎来到 Android人的问与答 ,在这里提问或帮助他人解答。 Question2Answer的1.6.x和1.7.x版本的中文翻译包我修改更新:

Question2answer

如何使用中文语言包

Q2A 1.6.x - Chinese Simplified (简体中文)

Q2A 1.7.x - Chinese Simplified (简体中文)


国内服务器推荐 阿里云服务器
国外服务器推荐 DigitalOcean
VPN推荐 正版Green VPN
阿里云推荐码:ldvq50

android:process的最大的坑

0 喜欢 0 不喜欢
212 浏览

每新建一个进程,Application的onCreate都将被调用一次。 这颠覆了很多人对Application的onCreate的理解。一般人都认为只会走一次。

所以在Application的onCreate中有初始化工作且需要根据进程来区分的。

解决方法:

在Application的onCreate中获取进程名称并进行相应的判断,例如:

private static String getProcessName(Context context) {

    try {
        int pid = android.os.Process.myPid();
        ActivityManager mActivityManager = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager
                .getRunningAppProcesses()) {
            if (appProcess.pid == pid) {
                return appProcess.processName;
            }
        }
    } catch (Throwable e) {
    }
    return "";
}

 

    String processName = getProcessName(this, android.os.Process.myPid());

    if (!TextUtils.isEmpty(processName) && processName.equals(this.getPackageName())) {//判断进程名,保证只有主进程运行

//主进程逻辑

    } else {
//具体根据需要来处理。
     return;
    }
最新提问 3月 23, 2016 分类:Android基础知识 | 用户: forlong401 (7,050 分)

登录 或者 注册 后回答这个问题。

...