0

さて、このプロジェクトの歴史を少しお伝えします。子スレッドで約100kの文字列を解析し、Html.fromHtml()からSpanedオブジェクトを返します。

問題は、メインスレッドに戻るときです。別のスレッドで作成されたばかりのSpannedを使用してsetTextを試行すると、Spannedオブジェクトから表示可能な形式(setText)に処理するのに非常に長い時間がかかります。

通常、これは子スレッドで処理しますが、残念ながら、これはUIに関連しているため、メインスレッドで処理する必要はありません。したがって、私の質問は、SpannedをsetTextで簡単に解釈できるものに処理する方法があるかどうかです。これにより、子スレッドの終了後にメインスレッドが処理するのに多くの時間を費やすことはありません。

testQuestionsExplanations.setText(spannedExplanationsObj);

私の最大の問題は、これを行うとメインスレッドがロックされることです。

4

1 に答える 1

1

私の問題の回避策を見つけました。

Spanned オブジェクト全体を一度に送信して TextView で処理するのではなく、小さな断片を送信して TextView に追加するだけです。

このようにして、私の ProgressDialog は完全にロックされません。ぎくしゃくしていますが、まったく動かないよりはましです。

于 2010-12-01T15:51:15.533 に答える