Activity.runOnUiThread
과 의 차이점은 무엇입니까 View.post
? 누군가가 설명해 주시겠습니까?
답변
View.post
활동에 직접 액세스 할 수 없을 때 도움이된다는 점을 제외하고는 실제 차이가 없습니다 .
두 경우 모두 UI 스레드가 아닌 경우 Handler#post(Runnable)
백그라운드에서 호출됩니다.
UI 스레드 호출 – CommonsWare의 주석에서 설명한 바와 같이, 둘 사이의 차이가 Activity#runOnUiThread
부르는 것이다 run
하면서 직접 방법 View#post
게시한다 runnable
큐에 (예를 들면 전화 Handler#post
)
IMO의 중요한 점은 둘 다 동일한 목표를 가지고 있으며이를 사용하는 사람 에게는 차이가 없어야한다는 것입니다 (그리고 구현은 향후 변경 될 수 있음).
답변
Activity.runOnUiThread와 view.post ()의 또 다른 차이점은 view.post ()의 runnable이 뷰가 창에 연결된 후 호출된다는 것입니다.
답변
어느 대부분의 경우 그들은 상호 교환 대부분 허용,하지만 그들은 이다 미묘하게 다른. 물론 가장 큰 차이점은 하나는에서 사용할 수 Activity
있고 다른 하나는 View
. 둘 사이에 겹치는 부분이 많지만에서에 Activity
액세스 할 수없는 View
경우도 있고에서 View
액세스 할 수없는 경우도 있습니다 Activity
.
내가 만난 가장자리 사례 중 하나는 다른 SO 질문에 대한 답변View.post
에서 언급했습니다 : 가 창에 연결된 경우 에만 다른 스레드에서 작동합니다 . 이것은 거의 문제가 없지만, 때때로이 될 수 있습니다 당신이 전화 특히, 실행 결코 에 당신의 방법 . 대안은 무엇 을 사용하고 어쨌든 덮개 아래에서 사용하는 것입니다.View.post
View.post
View
Runnable
View.post
onCreate
Activity
Handler.post
Activity.runOnUiThread
View.post
(정확성을 위해 편집 됨, “다른 스레드에서”추가됨)
답변
또 다른 차이점 post
은 뷰당입니다. runOnUiThread
활동 당입니다.
이 수단은 할 (? 미래에) 가능합니다 view.getQueue
/ activity.getQueue
당신은 당신의 자신의 추적 또는 필터링 코드없이 정확히 원하는 것을 얻을.
답변
