当前位置:文档之家› Android SystemBar启动流程分析

Android SystemBar启动流程分析

Android SystemBar启动流程分析
SystemBars的服务被start时,最终会调用该类的onNoService()方法。

@Override
public void start() {
if (DEBUG) Log.d(TAG, "start");
ServiceMonitor mServiceMonitor = new ServiceMonitor(TAG, DEBUG,
mContext, Settings.Secure.BAR_SERVICE_COMPONENT, this);
mServiceMonitor.start(); // will call onNoService if no remote service is found }
@Override
public void onNoService() {
if (DEBUG) Log.d(TAG, "onNoService");
createStatusBarFromConfig(); // fallback to using an in-process implementation }
private void createStatusBarFromConfig() {

mStatusBar = (BaseStatusBar) cls.newInstance();

mStatusBar.start();
}
BaseStatusBar是一个抽象类,故调用其子类的PhoneStatusBar的start 函数。

@Override
public void start() {

super.start();

}
子类的start又调用了父类的start
public void start() {

createAndAddWindows();

}
protected abstract void createAndAddWindows();
父类的start调用了一个createAndAddWindows()方法,此方法是抽象方法,最终调用的还是PhoneStatusBar的createAndAddWindows方法。

@Override
public void createAndAddWindows() {
addStatusBarWindow();
}
调用addStatusBarWindow()方法
private void addStatusBarWindow() {
makeStatusBarView();
mStatusBarWindowManager = new StatusBarWindowManager(mContext);
mRemoteInputController = new RemoteInputController(mStatusBarWindowManager);
mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
}
调用makeStatusBarView();方法,该方法调用后会生成信号栏的view,并且为这些信号的显示添加相应的控制对象。

在这里,创建了mMSimNetworkController对象。

PhoneStatusBarView makeStatusBarView() {

mMSimNetworkController = new MSimNetworkControllerImpl(mContext, mSignalThread.getLooper());

}
在MSimNetworkControllerImpl类的构造函数中,初始化了卡、信号以及数据的状态,并注册了状态变化的监听。

public MSimNetworkControllerImpl(Context context, Looper bgLooper) {
super(context, bgLooper);
initUIState();
mBackgroundHandler.post(new Runnable() {
@Override
public void run() {
registerPhoneStateListener(mContext);
}
});
registerBroadcastReceive(context);
resetVoLTEStateChangeObserver();
resetTurAccShowStateChangeObserver();
resetSimCardActiveStateChangeObserver();
resetAirplaneChangeObserver();
}。

相关主题