0

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

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

我通常会在子线程中处理它,但不幸的是,由于这与 UI 有关,我不能 - 必须在主线程上。所以,我的问题是是否有一种方法可以将 Spanned 处理成 setText 容易解释的东西,这样它就不会在子线程完成后在主线程上花费大量时间来处理它。

testQuestionsExplanations.setText(spannedExplanationsObj);

我最大的问题是这样做会锁定主线程。

4

1 回答 1

1

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

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

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

于 2010-12-01T15:51:15.533 回答