[RK3288][Android6.0] WiFi之网络时间定期同步更新
来源:互联网 发布:微信朋友圈数据采集 编辑:程序博客网 时间:2024/05/19 03:42
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
前面有分析了网络时间同步过程,每次开机的时候会同步时间,现在有考虑到一个问题,当一直开机的时候,由于RTC的硬件可能偏移从而导致时间错误的可能,那么NetworkTimeUpdateService这一块有没有定期更新呢,事实上是有的,利用的是alarm和广播机制
NetworkTimeUpdateService.java
private void registerForAlarms() { //注册一个广播 mContext.registerReceiver( new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { mHandler.obtainMessage(EVENT_POLL_NETWORK_TIME).sendToTarget(); } //对应的intent是ACTION_POLL }, new IntentFilter(ACTION_POLL));}
ACTION_POLL在哪里被创建呢
public NetworkTimeUpdateService(Context context) { //创建一个Intent Intent pollIntent = new Intent(ACTION_POLL, null); //通过Intent得到PendingIntent mPendingPollIntent = PendingIntent.getBroadcast(mContext, POLL_REQUEST, pollIntent, 0);}
mPendingPollIntent会被alarm用到
private void resetAlarm(long interval) { mAlarmManager.cancel(mPendingPollIntent); long now = SystemClock.elapsedRealtime(); long next = now + interval; //alarm到期后广播mPendingPollIntent到对应的Intent mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, next, mPendingPollIntent);}
resetAlarm()在onPollNetworkTimeUnderWakeLock()被调用
private void onPollNetworkTimeUnderWakeLock(int event) { resetAlarm(mPollingIntervalMs);}
mPollingIntervalMs在framework/base/core/res/res/values/config.xml配置,为864000000
也就是说过了每10天后,系统做一次网络时间同步。
另外,在WiFi网络有切换时,也会触发时间同步,参见registerForConnectivityIntents()
参考:
Android 结合AlarmManager浅谈Intent和PendingIntent
阅读全文
2 0
- [RK3288][Android6.0] WiFi之网络时间定期同步更新
- [RK3288][Android6.0] WiFi之同步网络时间过程
- [RK3288][Android6.0] WiFi之NetworkAgent对评分的更新
- [RK3288][Android6.0] WiFi之WifiWatchdogStateMachine
- [RK3288][Android6.0] WiFi之wpa_supplicant服务启动
- [RK3288][Android6.0] WiFi之Framework的socket(客户端)
- [RK3288][Android6.0] WiFi之wpa_supplicant的socket(服务端)
- [RK3288][Android6.0] WiFi之wpa_supplicant初始化过程
- [RK3288][Android6.0] WiFi之wpa_supplicant扫描过程
- [RK3288][Android6.0] WiFi之Framework扫描过程
- [RK3288][Android6.0] WiFi之Framework连接过程小结
- [RK3288][Android6.0] WiFi之开机自动连接过程
- [RK3288][Android6.0] WiFi之Passpoint功能了解
- [RK3288][Android6.0] WiFi之无线网络配置的保存过程
- [RK3288][Android6.0] WiFi之PNO功能了解
- [RK3288][Android6.0] WiFi之priority计算及使用
- [RK3288][Android6.0] WiFi之从Linkspeed看获取流程
- [RK3288][Android6.0] WiFi之DHCP获取IP address流程
- Java包装类
- 50天iOS挑战(Swift)
- HDU 2199 Can you solve this equation?
- python实现SMTP客户端
- 嫌Word转换太麻烦!那是你没选对转换工具
- [RK3288][Android6.0] WiFi之网络时间定期同步更新
- xml与map之间互转(java)
- [转]详解C指针
- 补题: 1001. Add More Zero 1011KazaQ's Socks
- python多线程学习总结
- yii2 composer安装 高级应用
- 关于easyUI
- ssh整合(1)
- HomeAssistant--Sonoff接入BH1750FVI光线感应器