贴出安卓N版本MyHandler对消息”conn的处理”原文:
case 'conn':
{
//在整个连接过程中,连接最终结果也即产生的错误码存放在消息的"result"字段中
int32_t result;
CHECK(msg->findInt32("result", &result));
ALOGI("connection request completed with result %d (%s)",
result, strerror(-result));
if (result == OK) {
//如果"result"字段的值为OK说明已经成功连接
//构造RTSP请求消息request,方法名为DESCRIBE,
//源的url为mSessionURL
AString request;
request = "DESCRIBE ";
request.append(mSessionURL);
request.append(" RTSP/1.0\r\n");
request.append("Accept: application/sdp\r\n");
request.append("\r\n");
//新建消息reply,消息名为'desc',消息处理者为this,也即MyHandler
//该消息会被在MyHandler的onMessageReceived的case 'desc'处理分支被处理
sp<AMessage> reply = new AMessage('desc', this);
//调用mConn->sendRequest的方法将构造RTSP请求消息发送出去
//并用reply消息作为对应完成后的处理
//
mConn->sendRequest(request.c_str(), reply);
} else {
//如果"result"字段的值不为OK说明没有成功连接
//新建消息,消息名为'disc',消息处理者为this也即MyHandler
//因此该消息会在MyHandler的onMessageReceived的case 'disc'处理分支被处理
(new AMessage('disc', this))->post();
}
break;
}