以编程方式减少处理程序中的时间间隔。的Android

时间:2016-02-23 14:51:41

标签: java android handler timing

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

    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 整数作为参数。我希望减少连续通话之间的时间。有办法吗?

2 个答案:

答案 0 :(得分:3)

这应该做你想要的。

    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);

答案 1 :(得分:0)

您可以在postDelayed

中设置限制
final Handler handler = new Handler();

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {

                handler.postDelayed(this, limit);
            }
        }, 1000);