所有的UI绘制都必须在UI线程里完成,不能在工作线程中调用UI部分。在Swing中,你可以通过Timer触发UI线程绘制,Timer可以在工作线程中调用,举例:
int delay = 400; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
blueButton.setBackground(Color.BLUE);
}
};
Timer timer = new Timer(delay, taskPerformer);
timer.setRepeats(false);
timer.start();
你可以在UI线程中创建timer,保存下来,然后在工作线程的run()中去执行timer。同样,Android中使用Handler是完全一样的。
可以贴出源代码,分析一下