各位版友好,
最近在開發一支工具要對設備周邊的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卡頓呢?