Android - 系统时间

文章详细介绍了Android中获取和处理时间的方法,包括System.currentTimeMillis()的设置与监听,以及SystemClock的uptimeMillis()、elapsedRealtime()和elapsedRealtimeNanos()在不同场景下的应用,特别提到了它们在系统休眠时的行为差异和对时间广播事件的响应。

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

1、System.currentTimeMillis():获取的是系统的时间,可以使用SystemClock.setCurrentTimeMillis(long millis)进行设置。如果系统时间发生了改变,可以通过监听广播来获取。

  • Intent.ACTION_DATE_CHANGED (日期改变广播):系统日期自动改变不会发送该广播,用户手动更改日期,只有修改为之后日期时才会发生该广播,否则不发送。

  • Intent.ACTION_TIME_CHANGED (时间改变广播):系统时间自动改变不会发送该广播,用户手动更改日期或时间均发送该广播。

  • Intent.ACTION_TIME_TICK (时间改变广播):系统时间自动改变会发送该广播,可以通过该广播进行整点播报功能。

2、SystemClock.uptimeMillis():表示系统开机到当前的时间总数,单位是毫秒,但是,当系统进入深度睡眠(CPU休眠、屏幕休眠、设备等待外部输入)时间就会停止,但是不会受到时钟缩放、空闲或者其他节能机制的影响。

3、SystemClock.elapsedRealtime():表示系统开机到当前的时间总数,单位是毫秒。它包括了系统深度睡眠的时间。这个时钟是单调的,它保证一直计时,即使CPU处于省电模式,所以它是推荐使用的时间计时器。

4、SystemClock.elapsedRealtimeNanos():和SystemClock.elapsedRealtime()一样,不过返回的是纳秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值