2012-11-13 25 views
0

我读了关于asyncTask的内容,并了解到onPostExecute和onPrExecute用于更新UI,而doInBackground用于在另一个线程上执行大量操作。在doInBackground上执行GUI东西

我在想,在DoInBackGround上做GUI更新会不会“坏”?例如,显示吐司等。

为什么我想这样做?因为有时我想利用这个长操作的结果显示的东西,我不希望在我的任务私有变量只是将它们存储GUI目的

谢谢

+0

为什么downvote?这是一个合法的问题 – Snake

回答

3

doInbackground本身就意味着我做在背景不在前景。通过publishProgress()可以实现您正在寻找的内容。 更进一步,如果你不想使用它,然后尝试在runOnUi支持的doInbackground方法中运行另一个线程。

+0

嗯有道理。那么如果我从DoInBackground展示烤面包,会发生什么?我试了一下,它的工作原理。它会失败还是只是没有编码标准 – Snake

+1

它可能会延迟显示,它可能会与未来的sdk版本打破,它可能不适用于旧的等等 - 只是有很多原因,当有一个干净的解决方案不符合标准的特定代码 - 在你的情况publishProgress - 实现你想要的 - 我承担那个...... – dorjeduck

+0

如果做得很好,他们会表现最好。如果android支持这个,那么为什么你需要在已经工作的线程中添加另一个线程?更进一步,它不是一个好的编码习惯..:P –