Open StayZeal opened 8 years ago
private void performStartActivityForResult(Context context, DLIntent dlIntent, int requestCode) { Log.d(TAG, "launch " + dlIntent.getPluginClass()); if (context instanceof Activity) { ((Activity) context).startActivityForResult(dlIntent, requestCode); } else { context.startActivity(dlIntent); } } 查看源码发现最后完成Activity启动的是这个方法,和正常的Activity启动唯一不同的就是在DLIntent重新指定了ClassLoader,我想问一下这里是怎么做到启动host项目AndroidManifest中没有的插件Activity的,难道是通过插件中的AndroidManifest文件?还有就是这里为什么要使用startActivityForResult方法。
启动的是代理activity,只是使用反射来创建插件中的activity
private void performStartActivityForResult(Context context, DLIntent dlIntent, int requestCode) { Log.d(TAG, "launch " + dlIntent.getPluginClass()); if (context instanceof Activity) { ((Activity) context).startActivityForResult(dlIntent, requestCode); } else { context.startActivity(dlIntent); } } 查看源码发现最后完成Activity启动的是这个方法,和正常的Activity启动唯一不同的就是在DLIntent重新指定了ClassLoader,我想问一下这里是怎么做到启动host项目AndroidManifest中没有的插件Activity的,难道是通过插件中的AndroidManifest文件?还有就是这里为什么要使用startActivityForResult方法。