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
}
});
}
불행히도, 이것이 정확한지는 모르겠지만 그것이 유일한 해결책이었습니다. 어쩌면 누군가가 더 나은 해결책을 도울 수 있습니다. 나는 감사 할 것이다.
추신. 미안해, 내 영어로.
게시자는 어디에서 게시하고 있습니까? 활동에서 생성 되었습니까? 그렇다면 UI 스레드에서 Handler가 이미 실행 중이므로 runOnUiThread 호출이 필요하지 않습니다. – twaddington
@twaddington이 맞습니다. 메인 스레드에서 핸들러를 생성하면 게시 된 메소드는 UI 스레드에서 실행됩니다. runOnUiThread를 사용하고 있다면 아마 핸들러가 필요 없을 것입니다. – Phil
예, Activity에서 핸들러를 생성했습니다. 따라서이 경우 실행 가능한 업데이트는 UI 스레드에서 실행됩니까? – mainmilly