0

我想每 10 秒运行一次 getVehicles() 方法,我有以下代码:

Handler vehiclehandler = new Handler();
    final Runnable vehiclerunnable = new Runnable() {   
        public void run() {
            getVehicles(null);
            vehiclehandler.postDelayed(this, 10000);
        } 
    };

然而目前它什么也没做,我已经四处寻找,无法弄清楚。

我是 android 新手,以前从未使用过处理程序,只有一个可运行的对象来告诉“runOnUiThread”。

4

3 回答 3

1

你跑了吗

vehiclehandler.post(vehiclerunnable)

至少一次?

我的意思是在 Runnable 之外

于 2012-11-28T13:54:49.403 回答
0

这是对您的代码的调整,将使其正常运行

Handler vehiclehandler = new Handler();
    vehiclehandler.postDelayed(new Runnable(){
            public void run(){
                    getVehicles(null);
            }
        },10000);

但这只会在执行之前延迟您的代码。如果您想一遍又一遍地重复该过程,则必须使用 Timer,例如:

private static Timer timer = new Timer();  
timer.scheduleAtFixedRate(new mainTask(), 0, 10000);
private class mainTask extends TimerTask
    { 
        public void run() 
        {
            getVehicles(null);
        }
    }    
于 2012-11-28T15:45:23.670 回答
0
final Handler lHandler = new Handler();
Runnable lRunnable = new Runnable() {

    @Override
    public void run() {
        // do stuff
        lHandler.postDelayed(this, 10000);
    }
};
lHandler.post(lRunnable);
于 2012-11-28T14:18:17.277 回答