0

我有一个函数 voidlog(String s)将消息打印到TextView将其添加到现有文本中。在内部它使用一个Handle

确实如此,setText(getText().toString() + s)但是当文本变大时,整个 UI 线程都会冻结。

有没有办法快速将日志输出(如Log.d)放入 UI 线程?

4

1 回答 1

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()); 
}
于 2012-12-20T21:07:01.233 回答