您的位置:首页 > 移动开发 > Android开发

《android获得进程名字的方法》

2017-07-12 18:31 316 查看
一、开发背景

        不知道大家有没有遇到过这样一种情况,在使用app extend application 的app基类中的onCreate()方法中,由于多次启动不同的进程,导致onCreate()方法多次调用。而打印Log日志的时候只打印一次。出现这种情况,我使用文件存储记录,发现还真是被多次调用了。后来跟同事讨论,发现原来是因为多个进程启动了,才导致多次被调用。知道问题所在,后面的事情就好处理了。是的,我们需要获取到不同的进程,然后根据进程的名字进行事件判定监听,防止多次执行onCreate()。

二、工具类code

/**
* Created by Administrator on 2017/2/14.
* 获得进程名字的方法
*/

public class OsUtil {

public static String getProcessName(Context cxt, int pid) {
//获取ActivityManager对象
ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
//在运行的进程的
List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
if (runningApps == null) {
return null;
}
for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
if (procInfo.pid == pid) {
return procInfo.processName;
}
}
return null;
}
}

调用很简单,直接在onCreate()里面调用即可,获得相应的进程名字,然后做相应的处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息