IT story

Android : Activity.runOnUiThread와 View.post의 차이점은 무엇입니까?

hot-time 2020. 9. 5. 10:33
반응형

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.postView.postViewRunnableView.postonCreateActivityHandler.postActivity.runOnUiThreadView.post

(정확성을 위해 편집 됨, "다른 스레드에서"추가됨)

참고 URL : https://stackoverflow.com/questions/10558208/android-whats-the-difference-between-activity-runonuithread-and-view-post

반응형