专栏首页移动大前端如何实现手机时间与服务器时间同步

如何实现手机时间与服务器时间同步

主要通过SystemClock.elapsedRealtime()来实现 实现原理:首先获取服务器时间,并记录获取服务器时间时当时的时钟值,当要重新获取服务器时间时,只需要用当前的时钟值-获取服务器时间时当时的时钟值+之前的服务器时间=现在的服务器时间 核心代码:

   df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    // 服务器时间
    serverTime = new Date(); // 这里取本地时间,为了测试
    // 开机之后会保持一个时钟(绝对时间)
    C1 = SystemClock.elapsedRealtime();
    
    showText = (TextView)findViewById(R.id.showText);
    
    Button button = (Button)findViewById(R.id.testButton);
    button.setText("当前时间:"+df.format(serverTime));
    button.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View v) {
        C2 = SystemClock.elapsedRealtime();
        // 当前时间=服务器时间+时间差
        Date curDate = new Date(serverTime.getTime()+(C2-C1));

        String s = df.format(curDate);
        showText.setText("最新当前时间:"+s);
       }
      });

应用场景描述:比如拍照图片上加服务器时间水印 旧的思路,每次拍照的时候获取服务器时间,这样回导致拍照很慢,因为每次请求接口耗费了大量的时间 新的思路,只获取一次服务器时间,后续的服务器时间通过时钟差来计算获得,是不是快多了呢

源码

https://github.com/andli0626/ServerTimeTest.git

参考资料

http://www.tuicool.com/articles/Inm2Uf

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一.jenkins+github+gradle 实现android自动化打包全攻略(MAC版)

    折腾了好几天,今天终于实现了第一个Android项目的自动化打包,过程比较的艰辛,参考了大量的资料,基本都没能说的很全,当中的坑比较多,还是自己总结下吧!OK,...

    专注APP开发
  • jenkins+eclipse+ant+蒲公英 实现Android自动打包全攻略(MAC版)

    搭建机器:一台Mac Book Pro 开发工具:Android Developer Tools Build: v22.6.2-1085508(mac版本) ...

    专注APP开发
  • jenkins通过fir插件实现ipa的自动发包

    上一篇文章讲了通过蒲公英发包 jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略 http://www.jianshu.com/p/ed1249...

    专注APP开发
  • ntp同步时钟的使用方法

    北斗时间服务器是对现代高科技自动化系统中的计算机及控制装置等进行校时的高科技产品。NTP协议用于把计算机或者其他的网络设备的时间同步到标准的UTC时间。网络时钟...

    时频专家
  • 再看编译原理

    其实就是翻译,比如从字符串编译到机器码,就是把人能理解的代码语言翻译成机器能“理解”(识别执行)的机器语言,然后用户借助目标程序就可以与机器交互了:

    ayqy贾杰
  • 自动调试自动编译五分钟上手

    祈澈菇凉
  • linux下的 lib文件的学习思考

    某日开发说,一台测试用虚机可以PING通SSH不能连了。运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢?

    孙杰
  • 投行凭“大数据”预测世界杯

    大数据文摘
  • win10 uwp InkCanvas控件数据绑定

    参见:https://github.com/Microsoft/Windows-task-snippets/blob/master/tasks/InkCanva...

    林德熙
  • S006SELinux(SEAndroid)是个什么呀

    SEAndroid 是一套安全机制,实现的主要目的是为了是Android系统更安全。 SELinux是被设计为一个灵活的可配置的MAC机制。 SEAndro...

    上善若水.夏

扫码关注云+社区

领取腾讯云代金券