0

に追加するデータを継続的に生成するスレッドがある 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 );
    }

私は何を間違っていますか?:) ありがとう

4

1 に答える 1

0

String の代わりに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());
    }
}
于 2012-08-28T19:45:28.583 に答える