在我们开发过程中,有时需要指定一个Activity在其他进程中运行。例如:
<activity
android:name=".views.MyPlayerActivity"
android:process=":myprocess">
</activity>
当打开此类型Activity时,会发现Application被重复初始化了。具体解决办法如下
/**
* 获取当前进程名称
* @param cxt
* @param pid
* @return
*/
public String getProcessName(Context cxt, int pid) {
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;
}