android 数字时间的刷新

本文详细记录了如何在Android应用中实现时间刷新功能,通过注册ACTION_TIME_TICK广播接收器,利用每分钟发送的系统广播来更新时间,解决了卡顿和系统时间不一致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做项目的时候,需要加入时钟的应用,想起以前开发的锁屏小应用中也用到了时间显示,当时是用线程来刷新,但是效果不是很好,很容易卡顿,也有时候和系统时间不一致,感觉很怪异。今天又遇到了这个问题,各种谷歌/百度,终于找到了很合理的解决方案,下面就详细的记录一下:

关键点:

根据android官方文档显示:ACTION_TIME_TICK(android.intent.action.TIME_TICK)可以使用,其作用是时间以分钟为单位发送,也就是每隔一分钟系统会向外发送一次该广播。

解决思路:
在程序里注册一个广播接收器来处理ACTION_TIME_TICK广播,当接受到该广播时调用更新时间方法更新时间即可。

核心代码:
//广播接收器
private TimeReceiver mTimeReceiver = null;
private IntentFilter mTimeFilter = null;
mTimeReceiver = new TimeReceiver();
mTimeFilter = new IntentFilter();
mTimeFilter.addAction(Intent.ACTION_TIME_TICK);
registerReceiver(mTimeReceiver, mTimeFilter);

class TimeReceiver extends BroadcastReceiver {

              @Override
              public void onReceive(Context context, Intent intent) {
                     if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) {
                            mClockWidget.refresh(); //更新时间的方法
                     }
              }
  }

这样一个关于时间刷新的应用就实现了。

转载于:https://my.oschina.net/yuanxulong/blog/366479

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值