ActivityStarter 类中 executeRequest 方法中
..........
Pair<Integer, Pair<Intent, ActivityInfo>> mutiAppInfo = mASWrapper.getExtImpl().getMultiAppActivityInfo(userId, intent, callingPackage, aInfo, callingUid, requestCode, startFlags, options, resolvedType, mSupervisor, mRootWindowContainer, computeResolveFilterUid(callingUid, realCallingUid, mRequest.filterCallingUid));
..........
..........
ActivityStarterExtImpl 类中 getMultiAppActivityInfo 方法中
outIntent[0] = OplusFeatureCache.get(IOplusMultiAppManager.DEFAULT).changeIntentIfNeed(outUserId, aInfo, outIntent[0], callingPackage, callingUid, requestCode,options, resolvedType, supervisor, filterCallingUid);
..........
..........
客制化的OplusMultiAppManagerService 类中 changeIntentIfNeed 方法中
..........
..........
Intent chooserIntent = Intent.createChooser(intent, null);
..........
return chooserIntent;
相较于AOSP来说,colorOS会存在上述的逻辑,在 app启动的时候,在executeRequest里 会去查询是否要改变intent,如果需要change,从而调出chooser对话框,如果不需要change,则返回null,继续走启动app的逻辑。此处过程的话,需要适配,具体细节就不多说了,保密hh