Android应用程序冻结,同时显示一些长文本

时间:2017-05-11 13:33:01

标签: java android multithreading

在java中的android应用程序中,我正在执行http异步请求,然后我想在ScrollView中的TextView中打印结果。

当打印结果很短时,此工作正常。但它可能很长,然后应用程序冻结约3-5秒。

我知道这是因为在主线程上完成了很多工作,但有没有办法在separeted线程上设置TextView的文本?

为了说明这是我在httpRequest的onResponse中的代码:

tView2.setText(requestName);
tView3.setText(message1);
tView4.setText(messag2);
tView4.setText(resultBody);
tView5.setText(message3);

如果我只是删除该行

tView4.setText(resultBody);

(其中resultBody包含一个长字符串)UI不再冻结,另一条消息几乎立即打印。

但是当我让它在上一条消息的打印之前UI被冻结,所以我甚至无法设置信息消息,阻止用户花费一些时间(我在我的代码中尝试过,它&& #39;为什么tView4上有2个setText ... ..

我想要的是管理它的最简单的解决方案。因此,打印信息消息的简便方法可以防止用户使用。

谢谢。

0 个答案:

没有答案