使用TextView(setText)处理大型跨区对象

时间:2010-12-01 14:56:31

标签: android multithreading textview spanned

好吧,为了给你一些关于这个项目的历史记录 - 我正在解析子线程中大约100k的字符串,并从Html.fromHtml()返回Spanned对象。

问题是当它返回主线程时 - 当尝试使用刚刚在另一个线程中创建的Spanned来设置文本时,需要花费很长时间将其从Spanned对象处理为可显示格式(setText)。 / p>

我通常会在子线程中处理它,但不幸的是,因为这与UI有关,所以我不能 - 必须在主线程上。所以,我的问题是是否有办法将Spanned处理成容易被setText解释的东西,这样它就不会花费很多时间在子线程完成后处理它的主线程上。

testQuestionsExplanations.setText(spannedExplanationsObj);

我最大的问题是它会锁定主线程。

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。

我不是一次性发送整个Spanned对象并将其处理到TextView上,而是发送较小的片段,然后将它们附加到TextView。

这样我的ProgressDialog就不会完全锁定 - 它是生涩的,但它总比不移动更好。