Android : Activity.runOnUiThread와 View.post의 차이점은 무엇입니까?
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
(정확성을 위해 편집 됨, "다른 스레드에서"추가됨)
'IT story' 카테고리의 다른 글
PowerShell에서 "%"(퍼센트)는 무엇을합니까? (0) | 2020.09.05 |
---|---|
.NET에서 파일이 잠금 해제 될 때까지 기다립니다. (0) | 2020.09.05 |
Eclipse에서 pep8.py를 통합하는 방법은 무엇입니까? (0) | 2020.09.05 |
Google의 Imageless 버튼 (0) | 2020.09.05 |
JSON Stringify는 UTC로 인해 날짜 시간을 변경합니다. (0) | 2020.09.05 |