나는 안드로이드를 배우고 있으며 나는이 문장에 갇혀있다. Google에서 :Handler.sendEmptyMessage (0)에서 제로 평균은 무엇입니까
어떤 값이 포함 된 메시지를 보냅니다.
true를 반환
반환은 메시지가 성공적으로 메시지 큐에 배치 된 경우. 실패시 false를 반환하며 대개 루퍼 처리 메시지 대기열이 종료되기 때문입니다.
누군가 제로가 포함될 메시지가 무엇인지 설명해주십시오. 감사합니다
나는 안드로이드를 배우고 있으며 나는이 문장에 갇혀있다. Google에서 :Handler.sendEmptyMessage (0)에서 제로 평균은 무엇입니까
어떤 값이 포함 된 메시지를 보냅니다.
true를 반환
반환은 메시지가 성공적으로 메시지 큐에 배치 된 경우. 실패시 false를 반환하며 대개 루퍼 처리 메시지 대기열이 종료되기 때문입니다.
누군가 제로가 포함될 메시지가 무엇인지 설명해주십시오. 감사합니다
의미는 what
값을 의미합니다. what
은 기본적으로 수신자가받은 메시지를 식별 할 수있는 정수입니다.
귀하의 handleMessage 기능이
public void handleMessage (Message msg)
처럼 당신이 Message
객체를 전달하고 메시지에 대해 무엇인지 알아 내기 위해 공공 필드 what
을 확인할 수 있습니다 보인다. (msg.what
)
예 :
당신은 지금 당신이 실패 성공 sendEmptyMessage(0)
및 sendEmptyMessage(1)
을 가질 수 what
값 1 for success
이
public void handleMessage (Message msg) {
switch (msg.what) {
case 1:
//success handling
break;
case 0:
//failure handling
break;
}
}
같은 0 for failure
그래서 당신의 handleMessage 기능이 보일 것이다 뭔가, 두 가지 유형의 메시지를 보낼 수 있습니다.
당신이 빈 메시지를 보낼 필요 없다 있음을 기억하십시오, 당신은 너무
성공에 일부 텍스트로 메시지를 보낼 수있는 예를 들어당신이 할 수있는 첨부 더 많은 데이터와 메시지 객체를 보낼 수
유사 실패
제로 수단, 그냥 빈 메시지를 보내는 것을 따라 이제과 0
Message.obtain(mHandler, 0, "Success text")
는 값으로 대체 할 수있다. 이 경우에는 하나의 유형의 메시지 만 있고 처리기는이를 이해합니다. 따라서 메시지를 수신해야하는 메시지의 종류를 확인하지 않아도됩니다. 그래서
sendEmptyMessage(AnyInteger)
잘 작동합니다. 0은 단지 관습에 의한 것입니다.
그들은 그들의 문서에 당신의 설명을 넣어 줘야합니다. 정말 도움이됩니다! 하지만 실제로'oneIntMessage' 일 때 왜 그것들을'emptyMessage'라고 부릅니까? – winklerrr
doc가 말하듯이, message.what – njzk2