Android(安卓)获取进程名称(可以区分内部进程)
16lz
2021-12-23
由于项目需要,很多时候使用新进程来运行服务等类似的需要,一般常用android:process=":newProcess"的方法。但是在android每新启动一个进程都需要重新加载Application的onCreate方法。我们就需要在onCreate里区分进程的名称来进行有选择性的加载一些资源。但是使用普通的context.getApplicationInfo.processName的方法都只能得到包名,无法区分同个包的进程。这里介绍一种其他可用的方法。
public String getProcessName(Context context) { String process = null; if (context != null) { int pid = android.os.Process.myPid(); ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> infoList = null; try { infoList = am.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo apps : infoList) { if (apps.pid == pid) { process = apps.processName; } } } catch (SecurityException e) { // 进程可能不具备获取 getRunningAppProcesses 权限 e.printStackTrace(); } } return process ;
更多相关文章
- Android(安卓)js和原生交互
- Android(安卓)View框架总结(一)
- android绑定远程服务以及android接口定义语言(aidl)
- Android(安卓)5 消息机制源码分析
- android 关于Location of the Android(安卓)SDK has not been se
- Android(安卓)ScrollView初始位置不在顶部的解决方法
- android service
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用