不断向TextView添加数据冻结了我的应用程序

时间:2012-08-28 19:33:32

标签: android mobile textview buffer

我正在开发一个Android应用程序,其中我有一个连续生成要附加在Textview中的数据的线程,我使用Handler这个但是在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 );
    }

我做错了什么? :) 感谢

1 个答案:

答案 0 :(得分:0)

尝试StringBuilder而不是字符串。

示例:

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());
    }
}