【发布时间】:2015-10-19 20:03:55
【问题描述】:
我需要实时更新 6 个图表。因此,我为每个图形创建了一个单独的队列,并尝试使用 timer.schedule 更新它,但它并没有真正起作用。特别是,如果我评论每个 timer.schedule 的调用并只保留第一个调用,它会运行良好。但即使我添加了第二个 timer.schedule (所以只有 1 个和 2 个定时器)它会冻结。这是我使用的代码:
timer_graph1 = new Timer();
timer_graph1.schedule(new Graph1(), 20, 20);
timer_graph2 = new Timer();
timer_graph2.schedule(new Graph2(), 20, 20);
timer_graph3 = new Timer();
timer_graph3.schedule(new Graph3(), 20, 20);
timer_graph4 = new Timer();
timer_graph4.schedule(new Graph4(), 20, 20);
timer_graph5 = new Timer();
timer_graph5.schedule(new Graph5(), 20, 20);
timer_graph6 = new Timer();
timer_graph6.schedule(new Graph6(), 20, 20);
class Graph1 extends TimerTask {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//add data to the graph and update
mChart1.invalidate();
}
});
}
}
//same structure as for Graph1
class Graph2 extends TimerTask {
}
您能否建议这种方法有什么问题?
【问题讨论】:
-
欢迎来到 Stack Overflow,但你能解释一下 doesn't really work 的意思吗?
-
特别是,如果我评论每个 timer.schedule 的调用并只留下第一个调用,它就会很好地工作。但即使我添加第二个 timer.schedule (所以只有 1 和 2 个计时器)它会冻结。
标签: java android multithreading timer scheduled-tasks