Android修复通知栏跳动的问题

曾经遇到过这样的问题,在我的代码中使用了通知栏,一切都正常,但是就是正在进行的通知栏中属于我的程序的那一条总是上下跳来跳去,一闪一闪的。感觉用户体验很不好,于是Google一下,找到了解决方法。

在我的代码,我是这样写的。

1

notification.when = System.currentTimeMillis();

这就是问题的关键,对于通知来说,when这个属性值应该在activity一启动的时候就应该固定。如果没有固定,就会使用默认的值,默认的值就是当前的时间,即System.currentTimeMillis()的值。因此使用一个自定义的固定值就可以解决问题。

1 2

final long TIMESTAMP_FIXED = 1234567890l; notification.when = TIMESTAMP_FIXED;

以下如Google介绍如何使用notification的when的说明。

A timestamp related to this notification, in milliseconds since the epoch. Default value: Now. Choose a timestamp that will be most relevant to the user. For most finite events, this corresponds to the time the event happened (or will happen, in the case of events that have yet to occur but about which the user is being informed). Indefinite events should be timestamped according to when the activity began. Some examples:

  • Notification of a new chat message should be stamped when the message was received.
  • Notification of an ongoing file download (with a progress bar, for example) should be stamped when the download started.
  • Notification of a completed file download should be stamped when the download finished.
  • Notification of an upcoming meeting should be stamped with the time the meeting will begin (that is, in the future).
  • Notification of an ongoing stopwatch (increasing timer) should be stamped with the watch’s start time.
  • Notification of an ongoing countdown timer should be stamped with the timer’s end time.

Reference

其他

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

2018秋招面经-后端开发

2903
来自专栏刘望舒

热修复原理之热修复框架对比和代码修复

题外话 今天听到了著名物理学家史蒂夫霍金去世消息,潸然泪下。作为一个天文迷,感谢霍金带给我的那些天文知识。十分敬佩霍金的身残志坚,他在全身瘫痪无法言语情况下仍旧...

3314
来自专栏wOw的Android小站

[Objective-C] Block实现回调和简单的学习思考

关于Objective-C的回调,最常见的应该是用delegate代理实现。不过代理的实现比起Block要更基础,就不介绍了,下面总结一下Block回调的实现。

902
来自专栏技术与生活

设计模式-命令模式

Client:确定具体的命令和接受者; Command:抽象命令接口,一般是接口类或者抽象类 ConcreteCommand:具体的命令执行,调用接受者 Inv...

1185
来自专栏牛客网

CVTE后台实习面经笔试:面试:(现场面,面了65分钟,已挂)

笔试: 选择题 1、AVL树相关的,比如高度之类的, 2、gc方面的,我记得有个选项是说调用System.gc()之后会不会同步gc 3、标记清除算法 4、数据...

3817
来自专栏牛客网

2018秋招面经-后端开发

博主渣渣本科,挣扎到十一月秋招终于结束了。面过百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子。期间总结了一些面试题目,现在放上来。由于是博主自己的面经记...

4049
来自专栏牛客网

2018秋招面经-后端开发

1745
来自专栏小狼的世界

Go学习入门

Go语言的历史要从贝尔实验室开始说起,我们知道贝尔实验室计算科学研究中心的肯•汤普逊 Ken Thompson 和丹尼斯 • 里奇 Dennis Ritchie...

3072
来自专栏编程

C语言在嵌入式系统编程时的注意事项

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程...

4937
来自专栏架构之路

追源索骥:透过源码看懂Flink核心框架的执行流程

写在最前:因为这篇博客太长,所以我把它转成了带书签的pdf格式,看起来更方便一点。想要的童鞋可以到我的公众号“老白讲互联网”后台留言flink即可获取。

2K4

扫码关注云+社区