直播带货平台开发,倒计时验证两种常用方式

直播带货平台开发,倒计时验证两种常用方式

1、第一种方式:Timer

 

1
/**<br> * Description:自定义Timer<br> * <p><br> * Created by Mjj on 2016/12/4.<br> */<br>public class TimeCount extends CountDownTimer {<br>    private Button button;<br>    //参数依次为总时长,和计时的时间间隔<br>    public TimeCount(Button button, long millisInFuture, long countDownInterval) {<br>        super(millisInFuture, countDownInterval);<br>        this.button = button;<br>    }<br>    //计时过程显示<br>    @Override<br>    public void onTick(long millisUntilFinished) {<br>        String time = "(" + millisUntilFinished / 1000 + ")秒";<br>        setButtonInfo(time, "#c1c1c1", false);<br>    }<br>    //计时完毕时触发<br>    @Override<br>    public void onFinish() {<br>        setButtonInfo("重新获取", "#f95353", true);<br>    }<br>    /**<br>     * 验证按钮在点击前后相关设置<br>     *<br>     * @param content 要显示的内容<br>     * @param color   颜色值<br>     * @param isClick 是否可点击<br>     */<br>    private void setButtonInfo(String content, String color, boolean isClick) {<br>        button.setText(content);<br>        button.setBackgroundColor(Color.parseColor(color));<br>        button.setClickable(isClick);<br>    }<br>}

 

说明:根据自己的需求,在这里修改背景颜色和不同状态显示文字即可,在需要监听的按钮下直接调用new TimerCount(xxx,xxx,xxx).start()即可。

 

2、第二种方式:Handler

 

1
/**<br>     * 第二种方式:使用Handler<br>     * <p><br>     * 静态内部类:避免内存泄漏<br>     */<br>    private static class MyHandler extends Handler {<br>        private final WeakReference<MainActivity> weakReference;<br>        public MyHandler(MainActivity activity) {<br>            weakReference = new WeakReference<MainActivity>(activity);<br>        }<br>        @Override<br>        public void handleMessage(Message msg) {<br>            super.handleMessage(msg);<br>            MainActivity activity = weakReference.get();<br>            if (activity != null) {<br>                switch (msg.what) {<br>                    case 0:<br>                        if (msg.arg1 == 0) {<br>                            btn2.setText("重新获取");<br>                            btn2.setBackgroundColor(Color.parseColor("#f95353"));<br>                            btn2.setClickable(true);<br>                        } else {<br>                            btn2.setText("(" + msg.arg1 + ")秒");<br>                            btn2.setBackgroundColor(Color.parseColor("#c1c1c1"));<br>                            btn2.setClickable(false);<br>                        }<br>                        break;<br>                }<br>            }<br>        }<br>    }<br>    /**<br>     * 监听按钮下直接调用即可<br>     */<br>    private void sendMessageClick() {<br>        new Thread(new Runnable() {<br>            @Override<br>            public void run() {<br>                for (int i = 59; i >= 0; i--) {<br>                    Message msg = myHandler.obtainMessage();<br>                    msg.arg1 = i;<br>                    myHandler.sendMessage(msg);<br>                    try {<br>                        Thread.sleep(1000);<br>                    } catch (InterruptedException e) {<br>                        e.printStackTrace();<br>                    }<br>                }<br>            }<br>        }).start();<br>    }

 

 

说明:此种方式采用的handler实时接收消息来设置Button的状态,对于消息的发送用的是sendMessage声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责方式,也可以使用post方式。

以上就是直播带货平台开发,倒计时验证两种常用方式, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示