以编程方式减少处理程序中的时间间隔.安卓 [英] Programatically reduce time interval in handler. Android

查看:86
本文介绍了以编程方式减少处理程序中的时间间隔.安卓的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在处理程序上使用postDelayed函数时,需要delayMillis变量来指定处理程序运行的时间.我希望处理程序无限期地重复,因此我嵌套了两个postDelayed函数.

When you use the postDelayed function on a handler, a delayMillis variable is required to specify the time after which the handler runs. I want my handler to repeat indefinitely so I have nested two postDelayed functions.

    final int initialdt = 1000;
    final Handler handler = new Handler();
    final Runnable r = new Runnable() {

        public void run() {

            handler.postDelayed(this, initialdt);
        }
    };
    handler.postDelayed(r, initialdt);

但是,使用此方法时,run()调用之间的时间是固定的.由于内部postDelayed需要 final 整数作为参数.我想减少连续通话之间的时间.有办法吗?

However using this method, the time between the run() calls is fixed. Since the inner postDelayed requires a final integer as a parameter. I want to reduce the time between consecutive calls. Is there a way to do so?

推荐答案

这应该做您想要的.

    final int initialDt = 1000;
    final Handler handler = new Handler();
    final Runnable r = new Runnable() {
        int dt = initialDt;
        public void run() {
            dt -= 100;
            if (dt >= 0) {
                handler.postDelayed(this, dt);
            }
        }
    };
    handler.postDelayed(r, initialDt);

这篇关于以编程方式减少处理程序中的时间间隔.安卓的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆