0
我需要等待一段时间(10秒),之后我必须重绘画布。我使用Handler#postDelayed来测量时间段。我的代码(只是部分):从另一个线程调用runOnUiThread
handler.postDelayed(updates, 10000);
private Runnable updates = new Runnable() {
public void run() {
methodToRedraw();
}
};
public void methodToRedraw(){
runOnUiThread(new Runnable() {
public void run() {
// redraw canvas
}
});
}
不幸的是,我不知道这是否正确,但它是我唯一的解决方案。也许有人可以帮助或更好地解决问题。我会很感激。
PS。对不起我的英语不好。
您在哪里创建要发布的处理程序?它是否在活动中创建?如果是这样,你不需要runOnUiThread调用,因为处理程序已经在UI线程上运行。 – twaddington
@twaddington是对的。如果您在主线程中创建处理程序,则发布的方法将在ui线程中运行。如果你使用runOnUiThread,你可能不需要处理程序。 – Phil
是的,我在Activity中创建了处理程序。所以在这种情况下,可运行更新将在UI线程上运行? – mainmilly