android - 菜鸟对于 handler发送msg的疑问。
伊谢尔伦
伊谢尔伦 2017-04-17 17:20:17
0
4
941

handler.sendEmpityMessage();和handler.obtainMessage(1,data).sendToTarget();有什么不同

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(4)
左手右手慢动作

두 번째 방법은 보낸 메시지를 판단하고 다른 처리를 수행할 수 있습니다. 분류 처리가 필요하지 않은 경우 빈 메시지를 보내는 것으로 충분합니다.

Peter_Zhu

소스코드를 보면
먼저 sendEmptyMessage(int what)

으아아아

다시 클릭sendEmptyMessageDelayed(what, 0)

으아아아

sendEmptyMessageDelayed(int what, long delayMillis) 메서드에서
획득한 메시지 개체에 어떤 매개변수가 할당되었는지 확인할 수 있습니다.


obtainMessage(1,data)

소스코드 보기 으아아아

메서드가 반환됩니다Message.obtain(this, what, obj), 계속해서 살펴보세요obtain(this, what, obj)

으아아아

메서드의 메시지도 acquire를 통해 가져오지만 여기서는 obj 개체도 Message에 할당됩니다.
sendToTarget() 소스 코드의 대상은 Handler입니다. 이는 sendMessage() 메서드

가 호출된다는 의미입니다. 으아아아 으아아아

sendEmptyMessage(int what)obtainMessage(int what, Object obj).sendToTarget()
의 가장 큰 차이점은

객체가 없다는 점입니다.

참고:
Handler의 sendEmptyMessage(int what)와 sendMessage(Message msg)의 차이점은 무엇인가요?
sendMessage 핸들러와 acquireMessage(sendToTarget) 비교

Peter_Zhu

첫 번째는 빈 메시지를 보내는 것이고, 두 번째는 메시지 풀에서 메시지를 가져와서 보내는 것입니다.

伊谢尔伦

다르지 않고 다양한 API를 제공하여 사용자의 습관에 맞게 사용할 수 있습니다

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