Android 时间维护服务 TimeService(针对于特殊定制设备)
此方法针对于无法自动获取网络时间的特殊设备,正常 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(针对于特殊定制设备)相关推荐
- 99.扩展183.信息系统运维维护服务
在<信息技术服务分类与代码>(GB/T 29264- -2012)中,对运行维护服务(operation maintenance service)给出的定义是"采用信息技术手段及 ...
- 网吧技术维护服务合同书
网吧技术维护服务合同书 甲方: 乙方:有限公司 合同编号: 甲方愿委托乙方为甲方所属网吧提供网吧技术维护服务.乙方愿接受甲方委托,提供约定的服务.双方在自愿.互利的基础上,对双方的权力 ...
- Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析
在Android系统中,壁纸窗口和输入法窗口一样,都是一种特殊类型的窗口,而且它们都是喜欢和一个普通的Activity窗口缠绵在一起.大家可以充分地想象这样的一个3W场景:输入法窗口在上面,壁纸窗口在 ...
- Android端+Java服务端+servlet+MySQL二手商城设计
项目地址: Android端+Java服务端+servlet+MySQL二手商城设计.zip-Android文档类资源-CSDN下载 项目简介及内容截图如下: 本系统适用于计算机专业作为期末课程设计. ...
- 【Android 开发】: Android客户端与服务端之间使用JSON交互数据。
在前面的两讲中,我们讲解了JSON数据格式的一些基本知识,以及做一些小Demo,这一讲我们在前面的基础上来做一个综合的可扩展的Demo,主要是针对Android客户端解析服务端传递过来的JSON数据. ...
- 基于Android社区养老服务信息平台
21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确.快速. ...
- Android访问WCF服务(使用json实现参数传递)
经过多日努力, 终于勉强弄明白了Android访问WCF服务的方法. 服务端实现 一, 实现服务. 操作契约 [csharp] view plaincopy [ServiceContract] pub ...
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8596449 在Android系统中,同一时刻只 ...
- 国外基于android的系统,基于Android的位置服务系统设计与实现
摘要: 近年来,随着移动互联网的飞速发展,位置服务已经成为移动增值业务的一个重要发展方向,然而由于现代位置服务应用规模不断扩大,用户和兴趣点的数据急剧增加,降低了周围兴趣点查询服务的实用性.本文通过地 ...
最新文章
- tp5页面跳转,空控制器空方法
- c++ 利用boost 实现文件操作
- python时间序列预测报错_python如何做时间序列
- vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例
- CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)
- oracle的集合操作符,[Oracle] Oracle的集合操作符
- C#GDI画立体渐变圆角panel
- 24.两两交换链表中的节点
- IOS-设置NavigationBar的背景及字体颜色
- 清明节偷偷训练“熊猫烧香”,结果我的电脑为熊猫“献身了”!
- 教学网站毕业设计源码【演示视频】
- oppo如何用计算机找回锁屏密码,OPPO忘了锁屏密码怎么办?从解锁到恢复全过程...
- 计算机无法加载这个项目,Windows系统中出现无法加载这个硬件的设备驱动程序(代码39)的解决方法介绍...
- Linux的LILO引导程序,LILO引导装载器详解
- CryENGINE 3 百度百科介绍
- 学计算机编程的男生不会撩妹,谁说妹子不会撩程序员?只是不想撩你
- codeforces1129D. Isolation
- 站在邙山之颠仰望天的那份湛蓝
- QML控件类型:Tumbler
- 理解GAM和SGAM页