在我们开发过程中,有时需要指定一个Activity在其他进程中运行。例如:
当打开此类型Activity时,会发现Application被重复初始化了。具体解决办法如下
/**
* 获取当前进程名称
* @param cxt
* @param pid
* @return
*/
public String getProcessName(Context cxt, int pid) {
ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
ListrunningApps = am.getRunningAppProcesses();
if (runningApps == null) {
return null;
}
for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
if (procInfo.pid == pid) {
return procInfo.processName;
}
}
return null;
}
@Override
public void onCreate() {
super.onCreate();
String processName = getProcessName(this, android.os.Process.myPid());
if (processName != null) {
//判断进程名称是否与主程序applicationId相同
boolean defaultProcess = processName.equals("com.xxx.mydemo");
//相同为主程序初始化
if (defaultProcess) {
//进行你的插件初始化
instance = this;
initParams();
initPlugin();
}
}
}