sdk需要获取sdk之外的参数,方法,甚至Class?
来源:互联网 发布:java实施工程师简历 编辑:程序博客网 时间:2024/06/06 08:29
1。 需要外部参数
可以用构造函数,或者set方法,在初始化的时候进行
2。需要外部方法
用回调方法实现
//两个回调接口,分别用于拉取全局控制数据和单个activity的配置数据 public interface SyncConfigDataCallback { public JSONArray downloadGlobalData(); public JSONArray downloadPageData(String pageName); } public static SyncConfigDataCallback mSyncConfigDataCallback; public static void setSyncConfigDataCallback(SyncConfigDataCallback SyncConfigDataCallback) { mSyncConfigDataCallback = SyncConfigDataCallback; } //在BifrostConfig中调用,用于全局参数的配置获取 public static void updateGlobalConfigData() { globalConfigJson = BFConfigCenterData.mSyncConfigDataCallback.downloadGlobalData();// Log.d("tingxiang global config"," "+globalConfigJson.length()); if (globalConfigJson.length() > 0) { globalConfigData = new BFGlobalConfigModuleList(globalConfigJson); } }
BFConfigCenterData.setSyncConfigDataCallback(new BFConfigCenterData.SyncConfigDataCallback() { @Override public JSONArray downloadGlobalData() { JSONArray jsonData = null; jsonData = TMConfigCenterManager.getInstance().getConfigDataArray("Bifrost"); return jsonData; } @Override public JSONArray downloadPageData(String pageName) { JSONArray jsonData = null; jsonData = TMConfigCenterManager.getInstance().getConfigDataArray("bifrost_" + pageName); return jsonData; } });
3。 需要用到外部定义的class
注册外部类的class路径,在sdk中可根据这个路径找到这个类,注意在android 6。0的手机上,必须调用RegisterInvoker.getDeclaredConstructor().setAccessible(true);
否则会有权限问题
注册:
BFInvokerMgr.registerBFInvoker(BFConstant.EVENT_SCREENSHOT_FEEDBACK, "com.tmall.wireless.application.bifrostinvoker.BFInvokerFeedback"); BFInvokerMgr.registerBFInvoker(BFConstant.EVENT_JUMP_URL, "com.tmall.wireless.application.bifrostinvoker.BFInvokerJumpUrl");
根据类名寻找,新建类对象
BFInvoker invoker = null; Class RegisterInvoker = null; try { RegisterInvoker = Class.forName(registeredInvokerClass.get(invokerType)); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { RegisterInvoker.getDeclaredConstructor().setAccessible(true); invoker = (BFInvoker) RegisterInvoker.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return invoker;
0 0
- sdk需要获取sdk之外的参数,方法,甚至Class?
- Android SDK下载缓慢甚至失败的解决方案
- 融云SDK:获取用户Token的方法
- 在eclipse的android工程里引用android sdk之外的类和方法
- android sdk manager 无法获取列表的方法
- Android SDK提供的获取文件路径方法小结
- 获取当前SDK的版本
- 抽象类的作用之一:sdk 传递你需要的参数
- 如何解决Android SDK下载过慢甚至无法下载的问题
- 开发SDK时需要注意的问题
- Android SDK Manager需要安装的插件
- android 下载sdk后,需要执行下SDK Manager,然后才能找到解压后的sdk
- 最新版 Android SDK 无法获取SDK包 的解决方案
- 最新版 Android SDK 无法获取SDK包 的解决方案
- VC6升级SDK的方法
- 更新sdk manager的方法
- 微信JS-SDK说明文档---自己总结了config时的参数获取方式
- 京东宙斯平台使用方法(accesstoken,appkey,appsecret参数和SDK的获取)
- java多线程执行计数相关类
- 我们的征途是星辰大海——CCF 2016 NOIP We’re Coming
- failed to lazily initialize a collection of role: , could not initialize proxy - no Session
- 【Hibernate】Hibernate 参数设置一览表
- JAVA NIO 内存映射文件 与DirectMemory
- sdk需要获取sdk之外的参数,方法,甚至Class?
- mysql游标使用
- 图片压缩
- Combination Sum II
- Bmob的简单使用
- Android用户界面基础之LinearLayout、TableLayout、RelativeLayout、FrameLayout、GridLayout学习
- CentOS6.7 下 Mysql5.7主从复制
- RTL8188CUS Raspberry Pi AP设置
- 牛顿迭代