handler.sendEmpityMessage();和handler.obtainMessage(1,data).sendToTarget();有什么不同
ringa_lee2017-04-17 17:22:17
두 번째 방법은 보낸 메시지를 판단하고 다른 처리를 수행할 수 있습니다. 분류 처리가 필요하지 않은 경우 빈 메시지를 보내는 것으로 충분합니다.
天蓬老师2017-04-17 17:22:17
소스코드를 보면
먼저 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) 비교