概述
大致流程图如下
首先是监听到有数据网络活动,然后进行处理:
PhoneStateListener.java # handleMessage()
case LISTEN_DATA_ACTIVITY:
PhoneStateListener.this.onDataActivity(msg.arg1);
PhoneStateListener中的onDataActivity()方法未进行处理,交由其子类 MobilePhoneStateListener 进行处理,其是 MobileSignalController 的内部类。
MobileSignalController.java -> MobilePhoneStateListener
@Override
public void onDataActivity(int direction) {
if (DEBUG) {
Log.d(mTag, "onDataActivity: direction=" + direction);
}
setActivity(direction);
}
void setActivity(int activity) {
// mCurrentState 是 MobileState 的对象,用来存储和手机有关的状态
// activityIn,activityOn 代表是否有数据流量活动
mCurrentState.activityIn = activity == TelephonyManager.DATA_ACTIVITY_INOUT
|| activity == TelephonyManager.DATA_ACTIVITY_IN;
mCurrentState.activityOut = activity == TelephonyManager.DATA_ACTIVITY_INOUT
|| activity == TelephonyManager.DATA_ACTIVITY_OUT;
if (mConfig.readIconsFromXml) {
mCurrentState.dataActivity = activity;
}
// 保存好状态后,通知监听器做出响应
notifyListenersIfNecessary();
}
notifyListenersIfNecessary的实现在MobileSignalController的父类SignalController中,最终会调用到其自身中的notifyListeners()中。
@Override
public void notifyListeners(SignalCallback callback) {
if (mConfig.readIconsFromXml) {
最后
以上就是风趣高跟鞋为你收集整理的数据流量图标更新流程的全部内容,希望文章能够帮你解决数据流量图标更新流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复