因为项目用到了模块化,library中调用app类中的方法只能通过反射

这里是app中的类,startAction方法需要接收从library传过来的值

public class ManuscriptDetailActivity extends BaseActivity {   //将数据传到startAction中 public static void startAction(Context mContext, String postId, String position) {}}

第一种方法

在library中不可以直接调用 ManuscriptDetailActivity.startAction()方法,因为调用不到。所以只能通过反射。

  try {            ClassLoader loader = DepartmentReportDetailActivity.class.getClassLoader();//得到当前类的classLoader            Class<?> clz;            clz = loader.loadClass("com.founder.mobileeditor.mobileeditor3.ui.main.modules.activity.ManuscriptDetailActivity");  //加载类            Method m = clz.getDeclaredMethod("startAction", Context.class,                    String.class, String.class); //获取方法            m.invoke(clz, DepartmentReportDetailActivity.this,docId , "");  //反射调用,static方法调用时,不必得到对象示例        } catch (Exception e) {            e.printStackTrace();        }

第二种方法 

       try {            Class<?> name = Class.forName("com.founder.mobileeditor.mobileeditor3.ui.main.modules.activity.ManuscriptDetailActivity");            Method method = name.getDeclaredMethod("startAction",  Context.class, String.class, String.class, String.class, String.class, String.class);            method.invoke(name,DepartmentReportDetailActivity.this, String.valueOf(docId), "", String.valueOf(docLibId), "", "");        } catch (Exception e) {            e.printStackTrace();        }

 

更多相关文章

  1. Android百度地图开发
  2. Drawable、Bitmap、byte[]之间的转换 (转)
  3. android 子线程 UI线程(主线程)通信
  4. 按钮的隐藏与不可见
  5. Android必备的Java知识点
  6. 3种Android隐藏顶部状态栏及标题栏的方法
  7. android 强制设置横屏 判断是横屏还是竖屏
  8. 【android之ADB命令】ADB SHELL 命令乱码解决方法
  9. net :: ERR_CLEARTEXT_NOT_PERMITTED

随机推荐

  1. 【Android】利用Strings资源文件来格式化
  2. Android(安卓)sd存储总结
  3. 【Tech-Android-View】Android4.0的横竖
  4. Android(安卓)搭建MVP+Retrofit+RxJava网
  5. Android获取目录
  6. 解决 android "launch error failed to c
  7. 【Android】WebView不完全总结
  8. React Navigation-StackNavigator
  9. android 开发 - 结束所有activity
  10. Failed to fetch url https //dl.google.