Android语言基础教程(57)Android基本组件之计时器:Android计时器:用对了爽到飞起,用错了卡到崩溃!

还记得你第一次做轮播图时的崩溃吗?图片死活不自动切换,或者切换时卡得亲妈都不认识?又或者,倒计时功能写着写着就内存泄漏了?

别问我是怎么知道的(抹泪)。今天咱们就来深扒Android里这个最常用,却又最容易被“想当然”使用的组件——计时器。

一、计时器:App里的“隐形劳动力”

先别急着敲代码。咱们想想,计时器在App里到底在扮演什么角色?

  • 轮播图:每3秒自动滑到下一张美女(哦不,是产品图)
  • 消息刷新:微信那个“正在输入…”的鬼畜效果
  • 游戏技能CD:亚瑟的一技能还有2秒就好!
  • 倒计时:双11秒杀,“还有01:23:45就要开始了!”

看出来没?计时器本质上就是个“时间触发器”——到点了,就捅一下你的代码:“喂,该干活了!”

但在Android这个大江湖里,能干活的时间触发器可不止一个。接下来就请出我们的三位参赛选手!

二、三大计时器,谁是你的Mr. Right?

选手1:老古董Handler —— 基础但靠谱

这哥们是Android里的老前辈了,虽然年纪大,但地位稳如泰山。

它的工作流程是这样的:

// 1. 先雇个保姆(Handler)
private Handler mHandler = new Handler();

// 2. 让保姆定期叫你起床
private Runnable mRunnable = new Runnable() {
    @Override
    public void run() {
        // 这里写你要定期干的事
        updateUI(); // 比如更新界面
        
        // 重要!干完活记得再安排下一次
        mHandler.postDelayed(this, 1000); // 1秒后再来
    }
};

// 3. 开始计时
mHandler.postDelayed(mRunnable, 1000);

// 4. 想停止的时候
mHandler.removeCallbacks(mRunnable);

Handler的内心独白:“年轻人别老想着花里胡哨的,我这一套方法用了多少年,稳定!”

适用场景:简单的UI更新,比如进度条、动画效果。

坑点警告

  • 忘掉removeCallbacks?恭喜你,内存泄漏大礼包一份!
  • 在子线程里直接操作UI?Crash正在赶来的路上!

选手2:Timer & TimerTask —— 来自Java的“外来和尚”

这位是Java原生家族派来的代表,在很多Java项目里混得风生水起。

基本操作:

// 搭个班子
private Timer mTimer;
private TimerTask mTimerTask;

private void startTimer() {
    mTimer = ne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值