有什么区别Activity.runOnUiThread和View.post,有人可以解释一下吗?
MBy*_*ByD 100
没有真正的区别,只有View.post当您无法直接访问活动时,这会有所帮助.
在这两种情况下,如果不在UI线程上,Handler#post(Runnable)将在幕后调用.
正如CommonsWare在评论中提到的那样,两者之间存在差异 - 当在Ui线程上Activity#runOnUiThread调用时,将run直接调用该方法,而View#post将runnable在队列上发布(例如调用Handler#post)
IMO的重点是两者都有相同的目标,对于任何使用它的人来说,应该没有区别(并且实施可能会在未来发生变化).
par*_*oel 23
Activity.runOnUiThread和view.post()之间的另一个区别是视图附加到窗口后调用view.post()中的runnable.
kab*_*uko 17
无论是在大多数情况下和用于它们是可互换的大部分上可接受的,但它们是微妙的不同.最大的区别当然是一个可以从一个Activity和另一个可用View.这些之间有很多重叠,但有时候Activity你将无法访问a View,有时候View你将无法访问Activity.
View.post我在回答另一个SO问题时View.post遇到过的一个边缘情况:View.post只有在连接到窗口时才能从另一个线程开始工作View.这很少是一个问题,但偶尔会导致Runnable永远不会执行,特别是如果你调用你View.post的onCreate方法Activity.另一种方法是使用Handler.post哪种是什么,Activity.runOnUiThread并View.post在封面下使用.
(编辑准确性,"从另一个线程"添加)
| 归档时间: |
|
| 查看次数: |
26964 次 |
| 最近记录: |