好吧,为了给你一些关于这个项目的历史记录 - 我正在解析子线程中大约100k的字符串,并从Html.fromHtml()返回Spanned对象。
问题是当它返回主线程时 - 当尝试使用刚刚在另一个线程中创建的Spanned来设置文本时,需要花费很长时间将其从Spanned对象处理为可显示格式(setText)。 / p>
我通常会在子线程中处理它,但不幸的是,因为这与UI有关,所以我不能 - 必须在主线程上。所以,我的问题是是否有办法将Spanned处理成容易被setText解释的东西,这样它就不会花费很多时间在子线程完成后处理它的主线程上。
testQuestionsExplanations.setText(spannedExplanationsObj);
我最大的问题是它会锁定主线程。
答案 0 :(得分:1)
我找到了解决问题的方法。
我不是一次性发送整个Spanned对象并将其处理到TextView上,而是发送较小的片段,然后将它们附加到TextView。
这样我的ProgressDialog就不会完全锁定 - 它是生涩的,但它总比不移动更好。