每秒刷新一次怎么做,间隔定时器与延迟定时器用法
"每隔一秒刷新一次时间""三秒后自动跳转广告页"——这类与时间相关的功能,靠定时器实现。V7 提供两种定时器,官方教程各一讲,别看名字像,行为完全不同。
两种定时器
- 间隔定时器:按固定周期反复执行。比如每 1000 毫秒执行一次,就会一直执行下去,直到你主动停掉。
- 延迟定时器:只延迟执行一次。设定 3000 毫秒,就等 3 秒后执行那一块代码,执行完自动结束。
一句话记忆:间隔是重复闹钟,延迟是单次闹钟。
典型场景
适合间隔定时器的:
- 时钟、倒计时类界面的每秒刷新;
- 轮播图自动翻页;
- 状态轮询(定时去服务器问一次有没有新消息)。
适合延迟定时器的:
- 启动页停留几秒后跳主页;
- 弹出提示后几秒自动消失;
- 用户停止输入 500 毫秒后再执行搜索(防抖)。
用间隔定时器的纪律
间隔定时器最容易出的问题不是"不会用",而是忘了停:
- 界面销毁时必须停掉定时器,否则它可能在界面已关闭后还在刷新不存在的控件,轻则报错重则闪退(排查见闪退排查);
- 同一个界面上叠多个定时器时,把"启停配对"写在同一处逻辑里管理;
- 刷新间隔别设太短,手机性能有限,100 毫秒级的刷新会让低端机发烫卡顿。
定时器与线程的关系值得知道:耗时任务不能直接写在界面事件里,会卡住整个界面——这也解释了为什么网络请求总是配合定时器或回调出现(见网络请求)。