android - View.post()
阿神
阿神 2017-04-17 15:32:23
0
5
878

View.post()这个方法一般用来做什么?

阿神
阿神

闭关修行中......

모든 응답(5)
Peter_Zhu

내가 가장 깊이 경험한 두 가지 효과는 다음과 같습니다.
1. onCreate() 메서드에서 view.getHeight()를 호출하면 0이 반환된다는 사실은 누구나 알고 있지만 다음과 같이 할 수 있습니다.

으아아아

그의 키를 알아내려고요.
2. 일정 기간 내에 뷰를 여러 번 클릭하면 불필요한 여러 클릭 이벤트가 발생하는 것을 방지하려면 View.postDelayed() 메서드를 사용하세요.

으아아아
小葫芦

게시물에는 Runnable이 포함되어 있습니다. 이는 Runnable의 작업이 UI 스레드에서 실행된다는 의미입니다. 그러나 여기서 Runnable은 새로운 스레드가 아니라는 점에 유의해야 합니다. 차단으로 인해 ANR이 발생하지 않도록 너무 복잡하고 시간이 많이 걸리는 작업을 수행하지 마십시오.

刘奇

View에는 기본적으로 Handler에 속하는 mainLooper이 있습니다. View.postHandler.post

과 같습니다.
Ty80

Android 앱은 시작 후 메인 스레드인 UIThread를 자동으로 시작합니다. 이 스레드는 주로 사용자 작업 이벤트 및 인터페이스 그리기 이벤트를 배포하는 데 사용됩니다. 따라서 더 나은 사용자 경험을 유지하기 위해 시간이 많이 걸리는 작업은 실행이 완료된 후 결과가 메인 스레드로 반환되어 표시됩니다. 그러나 UI는 다른 스레드에서 직접 조작할 수 없습니다. 이를 위해서는 스레드, 즉 핸들러, 메시지 큐 및 루퍼 간에 정보를 전송하는 메커니즘이 필요합니다.

Android 플랫폼은 주로 다음과 같은 방식으로 다른 스레드에서 메인 스레드에 액세스합니다.
Activity.runOnUiThread(Runnable)
View.post(Runnable)
View.postDelayed(Runnable, long)
핸들러

View.post의 실행 프로세스에 대해서는 다음 정보를 참조할 수 있습니다.
DelayLoad의 일종의 구현 및 원리(2부)
이 분석을 읽고 나면 View가 호출되는 이유를 이해할 수 있습니다. onCreate에서는 .post만 뷰의 높이를 얻을 수 있습니다

洪涛

View.post는 실행을 위해 Runnable을 UI 스레드의 대기열에 넣는 데 사용됩니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿