android - 是否可以在达到某个值(0:00)后停止通知计时器?
问题描述
我正在NotificationCompat.Builder
使用.setUsesChronometer(true).setWhen(Instant.now().toEpochMilli() + timeDifference.toMillis());
.
-timestampsetWhen()
在未来,所以 Chronometer 值-
在时间之前得到一个,它倒计时。
当它到达时间戳时,它会继续变化,并且该值现在是正数(向上计数)。
是否可以在 0:00 停用 Chronometer 或在开始计数之前将其停止?
我找到setChronometerCountDown(true)
了,但它是 API24+(我需要 19),Android Studio 说它无法解决这个方法,我认为它只是在倒计时时删除了减号,所以这对我没有帮助。
如果答案是否定的,是否有替代方案?
我猜每秒更新一次通知会影响电池消耗吗?
我RemoteViews
在我的通知中使用,所以 Chronometer ofRemoteViews
可能是一种替代方案,但我也找不到阻止它的方法。
解决方案
我使用了一个处理程序来停止计时器。
mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mCollapsedView.setUsesChronometer(false);
mNotificationManagerCompat.notify(1, mNotificationBuilder.build());
}
}, timeDifference.toMillis());
为我的解决方案获得一些反馈仍然会有所帮助。我对Android没有太多经验。
推荐阅读
- javascript - 使用不和谐 js 删除用户消息中的特定嵌入(或显示正确存储的嵌入)
- c++ - 不知道如何解决:“。”之前的预期主表达式 令牌
- react-native - 以高性能的方式渲染 FlatList 的视频
- python - TF Keras 模型输入上的低通滤波器
- python - 如何使用 for 循环和方法查询创建新的数据框来过滤我已经存在的数据框?
- function - 使用 dat.gui 修改函数的参数并修改其图形
- pine-script - 如何获得pinescript中所有蜡烛的较高高和较低低值?
- javascript - ERROR 错误:NG0200:在 DI 中检测到 InjectionToken HTTP_INTERCEPTORS 的循环依赖
- regex - 使用正则表达式删除重复括号之间的内容
- sprite-kit - 如何检测精灵套件中的精灵是否被鼠标点击