0

我正在开发一个 android 应用程序,其中我有一个线程不断生成要附加到 a 中的数据Textview,我为此使用 anHandler但 1 或 2 秒后我的应用程序只是冻结。

代码类似于:

private class UpdateTextRunnable implements Runnable
{
    private String mBuffer = "";

    public void addLine( String line ) {
        mBuffer += line + "\n";
    }

    @Override
    public void run(){
        mTextView.setText( mBuffer );
    }
}

并且在线程中,每 0.5/1 秒调用一次来自自定义接口的方法:

    public void onMyCustomEvent( String data )
    {
      // mUpdater is an instance of UpdateTextRunnable
      mUpdater.addLine( data );
      // mHandler is an instance of Handler inside the main activity
      mHandler.post( mUpdater );
    }

我究竟做错了什么 ?:) 谢谢

4

1 回答 1

0

尝试使用StringBuilder而不是 String。

例子:

private class UpdateTextRunnable implements Runnable
{
    private StringBuilder mSB = "";

    public void addLine(String line) {
        mSB.append(line + "\n");
    }

    @Override
    public void run() {
        mTextView.setText(mSB.toString());
    }
}
于 2012-08-28T19:45:28.583 回答