我已经尝试过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()
在那里被调用(以及其他函数)。
我该如何解决这个问题?
由于
答案 0 :(得分:1)
延迟时间中的值应该是您希望方法等待的值。例如,如果您想在等待1分钟后调用您的方法,则传递60000。
myHandler.postDelayed(runnableforadd, 60000);
目前您正在延迟时间内添加“wait”,即System.currentTimeMillis(),这意味着您的方法将在大约“1338900000000”毫秒后调用
答案 1 :(得分:0)
你试过AlarmManager
吗? AlarmManager将帮助您在一段时间后执行您的代码。