DcTracker和DefaultPhoneNotifier的联系
来源:互联网 发布:python mkdtemp 编辑:程序博客网 时间:2024/06/06 01:38
一、主要联系
当数据连接变化时数据图标的刷新过程,主要有这几步:
Step 1:DcTracker::notifyDataConnection 遍历各个apn类型,分别发送通知到phone;Step 2:Phonebase::notifyDataConnection 通知到notifier;Step 3:DefaultPhoneNotifier::notifyDataConnection 调用doNotifyDataConnection;Setp 4:DefaultPhoneNotifier::doNotifyDataConnection 调用notifyDataConnectionForSubscriber;Step 5:TelephonyRegistry::notifyDataConnectionForSubscriber 调用onDataConnectionStateChanged。
二、具体代码调用
2.1 DcTracker:
public class DcTracker extends DcTrackerBase;protected void notifyDataConnection(String reason) { if (DBG) log("notifyDataConnection: reason=" + reason); for (ApnContext apnContext : mApnContexts.values()) { if ((mAttached.get() || !mOosIsDisconnect) && apnContext.isReady()) { if (DBG) log("notifyDataConnection: type:" + apnContext.getApnType()); mPhone.notifyDataConnection(reason != null ? reason : apnContext.getReason(), apnContext.getApnType()); } } notifyOffApnsOfAvailability(reason);}
2.2 DcTrackerBase:
protected PhoneBase mPhone;
2.3 PhoneBase:
public abstract class PhoneBase extends Handler implements Phonepublic void notifyDataConnection(String reason, String apnType, PhoneConstants.DataState state) { mNotifier.notifyDataConnection(this, reason, apnType, state);}
protected PhoneNotifier mNotifier;
2.4 DefaultPhoneNotifier:
public class DefaultPhoneNotifier implements PhoneNotifier
public void notifyDataConnection(Phone sender, String reason, String apnType, PhoneConstants.DataState state) { doNotifyDataConnection(sender, reason, apnType, state);}
2.4.1 doNotifyDataConnection:
protected ITelephonyRegistry mRegistry;
mRegistry.notifyDataConnectionForSubscriber();
2.5 TelephonyRegistry:
class TelephonyRegistry extends ITelephonyRegistry.Stub
notifyDataConnectionForSubscriber:r.callback.onDataConnectionStateChanged()
至此,不往下分析了.
阅读全文
1 0
- DcTracker和DefaultPhoneNotifier的联系
- 一、Android DcTracker的创建及准备工作
- (N)Telephony分析(五)之DcTracker的初始化
- & 和 &&的区别和联系
- 程序员和电路板的联系
- Collection和Collecctions的联系
- MOLAP_ROLAP_HOLAP的区别和联系
- Adapterview和adapter的联系
- alloc 和 allocWithZoon的联系
- session和cookie的联系
- &&和&的联系与区别
- opensession()和getcurrentsession()的联系
- 信号和中断的联系
- hashCode和equals的联系
- 数组和指针的联系
- Eclipse和MyEclipse的联系
- (N)Telephony分析(六)之DcTracker的requestNetwork分析
- 数据仓库和数据库的区别和联系
- 【JAVA-多线程】ThreadLocal 学习总结
- java生成图形验证码
- 1003. 我要通过!(20)
- Java--一些小实例
- C语言之旅(7)关键字static的作用
- DcTracker和DefaultPhoneNotifier的联系
- ==、equals()以及hashcode()
- 倒计时简单实现
- TWI.IntegriWISE.v1.0.1.24840
- 鼠标点进虚拟机怎么跳出来
- Vue.js核心思想
- oracle闪回
- odoo11开发笔记--模块开发
- 使用JSP的调用表达式和调用脚本两种方法打印九九乘法表