所以我TimerTask task
在其onTimerComplete()
run()
onTimerComplete()
看起来像这样:
private void onTimerComplete(){
myFunc1();
myFunc2();
}
我制作了Timer t
,并使用TimerTask
t.schedule(task, 2000);
问题是,当计时器启动且任务运行onTimerComplete()
但该功能未完成时。它运行myFunc1()
但从未完成,也不会调用myFunc2()
但是,如果我直接致电onTimerComplete()
,一切正常。
这里的交易是什么?
答案 0 :(得分:2)
如果myFunc1()
开始,但永远不会结束,那么问题很可能出在该函数中。
您需要知道此函数将在单独的线程中调用。两个线程之间可能存在某种不需要的交互。 (Description here。)
如果myFunc1()
使用了一些也用于其他并发活动的变量,则可能需要同步部分代码。 concurrency tutorial可能会帮助您解决问题所在,以及如何解决问题。