singwhatiwanna / dynamic-load-apk

DL : dynamic load framework in android
http://blog.csdn.net/singwhatiwanna/article/details/40283117
Other
6.03k stars 2k forks source link

DLIntent怎么启动插件中没有在host项目的AndroidManifest.xml文件中注册的Activity? #119

Open StayZeal opened 8 years ago

StayZeal commented 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方法。

ableou commented 8 years ago

启动的是代理activity,只是使用反射来创建插件中的activity