DataConnection就是一个状态机,有下面这几个状态.
mDefaultState是其他几个状态的父状态,如果有其他几个状态无法处理的事件,那么就会给mDefaultState进行处理,初始化的状态是mInactiveState.
addState(mDefaultState);
addState(mInactiveState, mDefaultState);
addState(mActivatingState, mDefaultState);
addState(mActiveState, mDefaultState);
addState(mDisconnectingState, mDefaultState);
addState(mDisconnectingErrorCreatingConnection, mDefaultState);
setInitialState(mInactiveState);
在Dctracker的方法createDataConnection()中会调用DataConnection 的makeDataConnection()方法来创建Dataconnection对象,
public static DataConnection makeDataConnection(Phone phone, int id,DcTracker dct, DcTesterFailBringUpAll failBringUpAll,DcController dcc) {
DataConnection dc = new DataConnection(phone,
"DC-" + mInstanceNumber.incrementAndGet(), id, dct, failBringUpAll, dcc);
dc.start();
if (DBG) dc.log("Made " + dc.getName());
return dc;
}