本文出自:https://stilljin.blog.csdn.net/article/details/89164231

一丶概述

半年前做手机投屏功能,要求将同一局域网的设备列表传给前端进行交互,国庆前上线,然而就在测试前一天出问题反映情况是:iOS可以Android不行!Android的问题,加班给我改!
混合开发最最烦的事就是iOS,Android,前端配合开发,连调沟通。

二丶注意点

(1) JSBridge只能传String

查看传值源码

只能传String!!!

切忌勿撕逼
前端要JSON
对不起,我只能传String,我帮你拼接,你那边转。
为什么iOS可以你Android不行呢?
对不起,我只能传String

(2) 切勿在for循环里拼接字符串

拼接局域网内设备列表很容易写这样的代码

    /**     * 设备信息传给前端     * @param list     * @return     */    private String listToJSON(List list) {        if (null != list) {            String tYlist = "";            for (int i = 0; i < list.size(); i++) {                String deviceList = "{" + "\"deviceIP\"" + ":" + " \"" + list.get(i).getIp() + " \"" + ","                        + "\"deviceName\"" + ":" + " \"" + list.get(i).getName() + " \"" + "," + "\"isConnected\"" + ":" + list.get(i).isConnected() + "}";                if (i == 0) {                    tYlist = tYlist + deviceList;                } else {                    tYlist = tYlist + "," + deviceList;                }            }            LogUtils.d(TAG, "[" + tYlist + "]");            return "[" + tYlist + "]";        } else {            return "";        }    }

功能能实现,但是会被diao
为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接

从结果可以看出,用时从短到长的对比是:
StringBuilder < StringBuffer < concat < + < StringUtils.join

正确写法:

  // This is bad  String s = "";  for (int i = 0; i < field.length; ++i) {    s = s + field[i];  }// This is better  StringBuilder buf = new StringBuilder();  for (int i = 0; i < field.length; ++i) {    buf.append(field[i]);  }  String s = buf.toString();

(1) StringBuffer buf = new StringBuffer();在for循环外

(2).append 替代 +

三丶总结

1.切勿撕逼(浪费时间)
2.string拼接效率
StringBuilder > StringBuffer > concat > + > StringUtils.join
Android混合开发(二)——JSBridge传值注意点_第1张图片

更多相关文章

  1. Android 抢购功能(时间戳之间的倒计时)
  2. 去除Android系统应用的通知功能
  3. [zz]Android中各种JAVA包的功能描述
  4. 如何在android中实现swipe的手势功能及页面拖动动画
  5. 不同Android版本设备正确获取屏幕分辨率的通用方法
  6. 在Android Studio中使用Wifi连接Android设备
  7. Android设备通过USB线连接PC进行Socket通信
  8. eclipse adb 启动失败,无法匹配android设备 的解决方案

随机推荐

  1. Android中Dex分包实践
  2. Android(安卓)指纹登录工具类封装
  3. Logcat语法高亮显示:语法高亮显示为Andro
  4. Android全屏--两种activity的实现方式
  5. 整理一下Android中的ListView
  6. Android面试资料集锦
  7. android 如何让dialog不消失,即使是用户
  8. Android(安卓)如何让EditText不自动获取
  9. 清理android桌面
  10. android异步任务