各位版友好,
最近在开发一支工具要对设备周边的host进行传输,并将收到的结果印在设备上,
一开始在xml里将TextView单向绑定到ObservableField<String> message,要增加印出的
讯息处理如下,
message.set(message.get()+newMessage);
从传输到增加资料到message过程都写在另一个Thread处理,
但执行次数一多,会看到log讯息提示在main thread做太多事情,且app开始卡顿,
后来直接透过Handler,透过binding.layoutId.TextViewId找到目标TextView并用append
函式将讯息印出,不会有先前卡顿的问题...
请问为什么会有这样的差别呢?如果要用原先message.set(message.get()+newMessage);
的方式,该怎么处理才可以避免app卡顿呢?