Android开发——实现数字时钟
前言
在最近的项目当中,我遇到一个在界面中实现系统数字时钟的需求。一看这个其实挺简单的,开个一个子线程获取当前的系统时间睡眠1分钟发送当前时间,然后利用Handler去修改当前显示的时间,直接撸代码。
第一种:Handler+Thread
// 初始化方法
@Override
public void init() {// 时间变化handler = new Handler() {@Overridepublic void handleMessage(Message msg) {tevtView.setText((String) msg.obj);}};Threads thread = new Threads();thread.start();
}class Threads extends Thread {@Overridepublic void run() {try {while (true) {@SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");String str = sdf.format(new Date());handler.sendMessage(handler.obtainMessage(100, str));Thread.sleep(10000);}} catch (InterruptedException e) {e.printStackTrace();}}
}
这样能正常实现功能,但是new Thread就是一个定时炸弹,在我的项目炸了。由于我很多页面都有用到这个时钟功能,内存泄漏了。
第二种:使用广播来实现
// 初始化方法
@Override
public void init() {// 新时间@SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");tevtView.setText(sdf.format(new Date()));// 更新时间的广播IntentFilter filter=new IntentFilter();filter.addAction(Intent.ACTION_TIME_TICK);registerReceiver(receiver,filter);
}private final BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();assert action != null;if (action.equals(Intent.ACTION_TIME_TICK)) {@SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");tevtView.setText(sdf.format(new Date()));}}
};@Override
protected void onDestroy() {super.onDestroy();// 注销广播unregisterReceiver(receiver);
}
总结
推荐使用第二种方法来实现时钟功能,性能方面第二种会比第一种好,使用第二种方法之后界面的流畅程度有了明显的提高。希望对Android开发的小伙伴有帮助,为自己打个小广告哈!下面是我的公众号的图片,我会经常更新一下技术干货或者开发踩坑历程,欢迎大家关注我!
Android开发——实现数字时钟相关推荐
- android launcher桌面数字时钟及appwidget更新问题
代码下载http://download.csdn.net/detail/ldinvicible/5010177 一.桌面数字时钟控件效果图 二. 1.准备好一个Widget的显示布局文件 layout ...
- 我的Android进阶之旅------Android Widget 桌面数字时钟(DigtalClockWidget)实例
step1:新建项目DigtalClockWidget,并将显示时间的图片导入到drawable文件夹目录下: ...
- android开发时钟xml,android模拟时钟和数字时钟的例子
android.widget.AnalogClock和android.widget.DigitalClock类提供了显示模拟和数字时钟的功能. Android模拟和数字时钟用于在Android应用程序 ...
- Android模拟时钟和数字时钟示例
在Android中, AnalogClock是两只手的时钟,一个代表小时,另一个代表分钟. DigitalClock看起来就像您手中的普通数字手表,以数字格式显示小时,分钟和秒. AnalogCloc ...
- 开发数字时钟桌面小控件
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 所谓桌面小控件,就是指能直接显示在Android系统桌面的小程序,比如模拟时钟等.桌面小控件是通过Broadc ...
- quartus 修改 时钟_Clock Quartus II 开发的多功能数字时钟,有计时、调 闹铃、警报等 Other systems 其他 274万源代码下载- www.pudn.com...
文件名称: Clock下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Others 文件大小: 530 KB 上传时间: 2017-04-20 下载次数: 0 提 供 者: 墨离非 ...
- java数字时钟代码,Android自定义数字时钟代码,android自定义时钟,package jp.t
Android自定义数字时钟代码,android自定义时钟,package jp.tpackage jp.tsmsogn.digitalclock;import java.util.Calendar; ...
- Android 开发第七弹:简易时钟(秒表)
本文承接,Android 开发第五弹:简易时钟(闹钟) 和 Android 开发第六弹:简易时钟(计时器),这一部分是关于秒表的. 布局 同样是新建一个类(StopWatchView)并扩展自Line ...
- Android开发 之《最强大脑》“数字华容道”
文章目录 0 背景 0.1 游戏介绍 1 结构 2 定义棋盘和棋子 1.0 棋子 2.1 棋盘属性 2.2 排列棋子 3 生成棋局 4 游戏过程 5 高分榜 6 作弊&后记 0 背景 最近看& ...
最新文章
- 【细品架构12/100】架构漫谈系列脑图
- 奚记--最简洁的记账软件
- 一个将当前目录下HEX文件的第一行数据删除的程序...
- 英语发音表及读法_如何一个人练习英语口语?
- 三维重建8:点云图像的滤波方法
- 关注电子商务网站中的消费信赖和消费安全感
- opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽
- as ssd中文版测试软件,AS SSD Benchmark
- 兆,字节,位等单位转换
- MySQL Join 优化
- 论文中的结果分析怎么写?
- Expert 诊断优化系列------------------内存不够用么?
- 团队管理之—— 技术债务:如何带领团队从困境中突围而出?
- 鬼泣4refrain 《鬼泣4 refrain》图文全攻略(iphone版)
- 浅析在线教育行业发展所面临的困境
- 2022.05 ESP32 空中升级 OTA
- 2015年电子设计竞赛—增益可控射频放大器
- Arduino使用TM1650四位数码管模块
- Python入门:制作世界人口地图
- 编码之路,与君共勉!