前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何实现手机时间与服务器时间同步

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

作者头像
专注APP开发
发布2019-11-07 15:09:26
3.6K0
发布2019-11-07 15:09:26
举报
文章被收录于专栏:移动大前端移动大前端

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

代码语言:javascript
复制
   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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 源码
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档