80,479
社区成员
发帖
与我相关
我的任务
分享
[/quote]
开机启动广播?没必要啊
没必要一开机就记录elapsedTime
既然客户端的时间不准确 不采用
这样就只需要客户端保证获取的数据的时间间隔是正确的就行了
也就是说 在用户更改了系统日期时间后 只需要获取每次日期时间的变化值就好了
例如 在系统开机1分钟整后用户开启了应用 此时系统时间是2013.04.27 21:00:00.000
获得SystemClock.elapsedRealtime() = 60000 (1分钟)
计算出本次开机系统的时间是 2013.04.27 20:59:00.000 (*) 记录这个timestamp
程序运行不知道多久后 收到日期时间改变广播
获取当前 就也就是改变后的系统时间为 2013.04.27 22:00:00.000
获得SystemClock.elapsedRealtime() = 7260000 (2个小时加1分钟)
计算出以改变后的系统时间的开机时间为 2013.04.27 19:59:00.000
和第一个系统时间的timestamp (*)相比较 早了一个小时 说明系统时间调早了一个小时
这样 以后每次用户获取数据的时候 获取的系统时间需要加上一个小时[/quote]
elapsedRealtime在每次设备reboot之后都会清零啊,所以它不是一个能作为参考的值,除非你在每次系统boot complete时候记录一下elapsedRealtime以及当前时间戳。如果我设备从来不断电,那可以,但设备室要重启的啊。。。[/quote]
重启有也没关系啊...
主要目的是收到时间日期改变广播后计算出时间的变更值啊...
elapsedRealtime只是个辅助工具而已啊[/quote]
……
1、app启动,记录下了timestamp以及elapsedRealtime
2、设备reboot
3、用户修改设备时间
ok,怎么计算
[/quote]
开机启动广播?没必要啊
没必要一开机就记录elapsedTime
既然客户端的时间不准确 不采用
这样就只需要客户端保证获取的数据的时间间隔是正确的就行了
也就是说 在用户更改了系统日期时间后 只需要获取每次日期时间的变化值就好了
例如 在系统开机1分钟整后用户开启了应用 此时系统时间是2013.04.27 21:00:00.000
获得SystemClock.elapsedRealtime() = 60000 (1分钟)
计算出本次开机系统的时间是 2013.04.27 20:59:00.000 (*) 记录这个timestamp
程序运行不知道多久后 收到日期时间改变广播
获取当前 就也就是改变后的系统时间为 2013.04.27 22:00:00.000
获得SystemClock.elapsedRealtime() = 7260000 (2个小时加1分钟)
计算出以改变后的系统时间的开机时间为 2013.04.27 19:59:00.000
和第一个系统时间的timestamp (*)相比较 早了一个小时 说明系统时间调早了一个小时
这样 以后每次用户获取数据的时候 获取的系统时间需要加上一个小时[/quote]
elapsedRealtime在每次设备reboot之后都会清零啊,所以它不是一个能作为参考的值,除非你在每次系统boot complete时候记录一下elapsedRealtime以及当前时间戳。如果我设备从来不断电,那可以,但设备室要重启的啊。。。[/quote]
重启有也没关系啊...
主要目的是收到时间日期改变广播后计算出时间的变更值啊...
elapsedRealtime只是个辅助工具而已啊
[/quote]
开机启动广播?没必要啊
没必要一开机就记录elapsedTime
既然客户端的时间不准确 不采用
这样就只需要客户端保证获取的数据的时间间隔是正确的就行了
也就是说 在用户更改了系统日期时间后 只需要获取每次日期时间的变化值就好了
例如 在系统开机1分钟整后用户开启了应用 此时系统时间是2013.04.27 21:00:00.000
获得SystemClock.elapsedRealtime() = 60000 (1分钟)
计算出本次开机系统的时间是 2013.04.27 20:59:00.000 (*) 记录这个timestamp
程序运行不知道多久后 收到日期时间改变广播
获取当前 就也就是改变后的系统时间为 2013.04.27 22:00:00.000
获得SystemClock.elapsedRealtime() = 7260000 (2个小时加1分钟)
计算出以改变后的系统时间的开机时间为 2013.04.27 19:59:00.000
和第一个系统时间的timestamp (*)相比较 早了一个小时 说明系统时间调早了一个小时
这样 以后每次用户获取数据的时候 获取的系统时间需要加上一个小时[/quote]
elapsedRealtime在每次设备reboot之后都会清零啊,所以它不是一个能作为参考的值,除非你在每次系统boot complete时候记录一下elapsedRealtime以及当前时间戳。如果我设备从来不断电,那可以,但设备室要重启的啊。。。
[/quote]
开机启动广播?没必要啊
没必要一开机就记录elapsedTime
既然客户端的时间不准确 不采用
这样就只需要客户端保证获取的数据的时间间隔是正确的就行了
也就是说 在用户更改了系统日期时间后 只需要获取每次日期时间的变化值就好了
例如 在系统开机1分钟整后用户开启了应用 此时系统时间是2013.04.27 21:00:00.000
获得SystemClock.elapsedRealtime() = 60000 (1分钟)
计算出本次开机系统的时间是 2013.04.27 20:59:00.000 (*) 记录这个timestamp
程序运行不知道多久后 收到日期时间改变广播
获取当前 就也就是改变后的系统时间为 2013.04.27 22:00:00.000
获得SystemClock.elapsedRealtime() = 7260000 (2个小时加1分钟)
计算出以改变后的系统时间的开机时间为 2013.04.27 19:59:00.000
和第一个系统时间的timestamp (*)相比较 早了一个小时 说明系统时间调早了一个小时
这样 以后每次用户获取数据的时候 获取的系统时间需要加上一个小时
求关注啊,如果在每次系统广播时间改变的时候能同时携带改变的时间就好了,哎。