DcActiveState状态是在建立数据业务的时候,建立成功后切换到的状态,在此状态中要处理很多事情如下:
1.enter() 方法,在方法中会
a .更新mNetworkInfo属性,mNetworkInfo属性在创建DataConnection对象的时候创建的.
b.notifyAllOfConnected(Phone.REASON_CONNECTED);通知DcTracker处理.
c .注册voice call start和voice call end事件的监听,在DcActiveState状态收到voice call start,voice call end事件的时候会设置mNetworkInfo的状态为suspend或者connected.
mPhone.getCallTracker().registerForVoiceCallStarted(getHandler(),DataConnection.EVENT_DATA_CONNECTION_VOICE_CALL_STARTED, null);
mPhone.getCallTracker().registerForVoiceCallEnded(getHandler(),DataConnection.EVENT_DATA_CONNECTION_VOICE_CALL_ENDED, null);
d.updateTcpBufferSizes(mRilRat);设置tcp buffer.
e. 创建mNetworkAgent对象,创建NetworkAgent的流程如"网络评分机制-NetworkAgent"
mNetworkAgent = new DcNetworkAgent(getHandler().getLooper(), mPhone.getContext(),"DcNetworkAgent", mNetworkInfo, makeNetworkCapabilities(), mLinkProperties,50, misc);