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