此方法针对于无法自动获取网络时间的特殊设备,正常 Android 设备直接调用

System.currentTimeMillis();

方法获取当前时间即可。

TimeService 集成于 Service,实现与主Activity 的生命周期绑定。

TimeService 代码

public class TimeService extends Service {private TimeService mContext;private Timer mTimer;//定时器private long currentTimeMillis = 0;//当前时间private static final long UPDATE_TIME_OFFSET = 1 * 1000;//自动更新间隔private CheckTimeTask checkTimeTask;private UpdateTimeTask updateTimeTask;//需用内部类继承Binder,并定义方法获取Service对象private final IBinder binder = new TimeBinder();//外部调用,获取当前时间public long getCurrentTimeMillis() {return currentTimeMillis;}//初始化服务时间public void setCurrentTimeMillis(String dateStr) {if (StringUtil.isNullOrEmpty(dateStr)) {return;}try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(dateStr);currentTimeMillis = date.getTime();} catch (ParseException e) {e.printStackTrace();}}public class TimeBinder extends Binder {public TimeService getService() {return mContext;}}@Nullable@Overridepublic IBinder onBind(Intent intent) {return binder;}@Overridepublic void onCreate() {super.onCreate();mContext = this;initData();}private void initData() {mTimer = new Timer();checkTimeTask = new CheckTimeTask();updateTimeTask = new UpdateTimeTask(UPDATE_TIME_OFFSET);mTimer.schedule(checkTimeTask, 1000, 5 * 60 * 1000);//每5分钟更新一次网络时间mTimer.schedule(updateTimeTask, 0, UPDATE_TIME_OFFSET);}@Overridepublic void onDestroy() {super.onDestroy();if (mTimer != null) {mTimer.cancel();mTimer = null;}if (checkTimeTask != null) {checkTimeTask.cancel();checkTimeTask = null;}if (updateTimeTask != null) {updateTimeTask.cancel();updateTimeTask = null;}}/*** 获取服务器时间*/private class CheckTimeTask extends TimerTask {@Overridepublic void run() {//=========此处为获取网络时间请求========//===============================SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");if (bean != null ) {String dateStr = bean;try {Date date = sdf.parse(dateStr);currentTimeMillis = date.getTime();} catch (ParseException e) {e.printStackTrace();}}}}/*** 定时更新当前时间*/private class UpdateTimeTask extends TimerTask {/*** 更新时间间隔*/private long offset = 0;public UpdateTimeTask(long offset) {this.offset = offset;}@Overridepublic void run() {currentTimeMillis += offset;}}}

转载于:https://www.cnblogs.com/ProMonkey/p/5765208.html

Android 时间维护服务 TimeService(针对于特殊定制设备)相关推荐

  1. 99.扩展183.信息系统运维维护服务

    在<信息技术服务分类与代码>(GB/T 29264- -2012)中,对运行维护服务(operation maintenance service)给出的定义是"采用信息技术手段及 ...

  2. 网吧技术维护服务合同书

    网吧技术维护服务合同书   甲方: 乙方:有限公司       合同编号: 甲方愿委托乙方为甲方所属网吧提供网吧技术维护服务.乙方愿接受甲方委托,提供约定的服务.双方在自愿.互利的基础上,对双方的权力 ...

  3. Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析

    在Android系统中,壁纸窗口和输入法窗口一样,都是一种特殊类型的窗口,而且它们都是喜欢和一个普通的Activity窗口缠绵在一起.大家可以充分地想象这样的一个3W场景:输入法窗口在上面,壁纸窗口在 ...

  4. Android端+Java服务端+servlet+MySQL二手商城设计

    项目地址: Android端+Java服务端+servlet+MySQL二手商城设计.zip-Android文档类资源-CSDN下载 项目简介及内容截图如下: 本系统适用于计算机专业作为期末课程设计. ...

  5. 【Android 开发】: Android客户端与服务端之间使用JSON交互数据。

    在前面的两讲中,我们讲解了JSON数据格式的一些基本知识,以及做一些小Demo,这一讲我们在前面的基础上来做一个综合的可扩展的Demo,主要是针对Android客户端解析服务端传递过来的JSON数据. ...

  6. 基于Android社区养老服务信息平台

    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确.快速. ...

  7. Android访问WCF服务(使用json实现参数传递)

    经过多日努力, 终于勉强弄明白了Android访问WCF服务的方法. 服务端实现 一, 实现服务. 操作契约 [csharp] view plaincopy [ServiceContract] pub ...

  8. Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8596449 在Android系统中,同一时刻只 ...

  9. 国外基于android的系统,基于Android的位置服务系统设计与实现

    摘要: 近年来,随着移动互联网的飞速发展,位置服务已经成为移动增值业务的一个重要发展方向,然而由于现代位置服务应用规模不断扩大,用户和兴趣点的数据急剧增加,降低了周围兴趣点查询服务的实用性.本文通过地 ...

最新文章

  1. tp5页面跳转,空控制器空方法
  2. c++ 利用boost 实现文件操作
  3. python时间序列预测报错_python如何做时间序列
  4. vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例
  5. CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)
  6. oracle的集合操作符,[Oracle] Oracle的集合操作符
  7. C#GDI画立体渐变圆角panel
  8. 24.两两交换链表中的节点
  9. IOS-设置NavigationBar的背景及字体颜色
  10. 清明节偷偷训练“熊猫烧香”,结果我的电脑为熊猫“献身了”!
  11. 教学网站毕业设计源码【演示视频】
  12. oppo如何用计算机找回锁屏密码,OPPO忘了锁屏密码怎么办?从解锁到恢复全过程...
  13. 计算机无法加载这个项目,Windows系统中出现无法加载这个硬件的设备驱动程序(代码39)的解决方法介绍...
  14. Linux的LILO引导程序,LILO引导装载器详解
  15. CryENGINE 3 百度百科介绍
  16. 学计算机编程的男生不会撩妹,谁说妹子不会撩程序员?只是不想撩你
  17. codeforces1129D. Isolation
  18. 站在邙山之颠仰望天的那份湛蓝
  19. QML控件类型:Tumbler
  20. 理解GAM和SGAM页

热门文章

  1. 如何在Vue 中管理 Mixins(搞懂这两点就足够了)
  2. redis专题:redis键值设计、性能优化以及redis连接池配置
  3. IDEA autowired校验关闭方法
  4. JVM优化系列-JVM G1 垃圾收集器
  5. MySQL为什么用 B+ 树,不用 B 树?
  6. Springboot中常用的文件上传和下载通用接口
  7. Spring IOC核心原理分析
  8. cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
  9. 物联网模式下的污水处理前景分析
  10. animition动画的加入