有什么区别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 次 |
最近记录: |