我有一个函数void log(String s)
,它将消息打印到TextView
,并将其添加到现有文本中。在内部,它使用Handle
确实setText(getText().toString() + s)
但是当文本变大时,整个UI线程会冻结。
有没有办法快速将日志输出(如Log.d
)放入UI线程?
答案 0 :(得分:1)
你能这样更新吗?
handler.post(new Runnable(){
public void run() {
setText(...)
}
});
或者使用StringBuilder作为日志消息。 setText(getText()+ new log)非常慢。
protected StringBuilder logs = new StringBuilder();
void newLogMessage(String msg) {
logs.append(msg);
setText(logs.toString());
}