在一定时间后无限调用某些功能

时间:2012-06-05 21:06:07

标签: android multithreading sleep repeat period

我已经尝试过time& timertask,handler& runnables,没有什么能让我的函数在一定时间后被调用。请帮我摆脱这个。

when = System.currentTimeMillis();
t1 = new Timer();
tt = new TimerTask(){@Override public void run(){ systemClick();}};
t1.scheduleAtFixedRate(tt, when+interval, interval);

这一个:

final Handler myHandler = new Handler();

    Runnable runnableforadd  = new Runnable() 
    {
        public void run() 
        {
            systemClick();              
            myHandler.postDelayed(this, interval);
        }   
    };
    myHandler.postDelayed(runnableforadd, when + interval);

第一个和第二个I都在onCreate()中执行。 systemClick()即使在一次契约中也没有被召唤(我已经把Toast放在那里)。我不太了解Threads。

systemClick - 是一个函数,系统执行单击我的按钮 - myButton.performClick()在那里被调用(以及其他函数)。

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:1)

延迟时间中的值应该是您希望方法等待的值。例如,如果您想在等待1分钟后调用您的方法,则传递60000。

myHandler.postDelayed(runnableforadd, 60000);

目前您正在延迟时间内添加“wait”,即System.currentTimeMillis(),这意味着您的方法将在大约“1338900000000”毫秒后调用

答案 1 :(得分:0)

你试过AlarmManager吗? AlarmManager将帮助您在一段时间后执行您的代码。