와 CalledFromWrongThreadException를 확인할 수 없습니다이 핸들러
public final class MHandler extends Handler{
//main activity
private ARViewer arnv;
public MHandler(ARViewer arnv){
this.arnv = arnv;
}
@Override
public void handleMessage(Message msg) {
...
case H_RR :
arnv.setContentView(R.layout.routeplanner);
break;
...
super.handleMessage(msg);
}
}
그러나 다른 클래스의 콜백 함수에서 handleMessage 메서드를 호출하면 다른 스레드에서 확실히 예외 메시지가 표시됩니다. CalledFromWrongThreadException (Only the original thread that created a view hierarchy can touch its views)
:
public void rFound(Route route) {
Message msg = new Message();
msg.what = MHandler.H_RR;
ARViewer.arnv.mHandler.handleMessage(msg);
}
이전에이 해결책을 찾았지만 작동시키지 못했습니다. 나는 다시 그것을 보게 될 것이다. 덕분에 – Michel
스레드에서 setContentView (R.layout.routeplanner)를 설정하는 이유는 무엇입니까? 그것을 onCreate에 설정 한 다음 findViewById (R.id.myview)로 뷰/레이아웃을 업데이트하고 올바른 내용/값/가시성을 설정하십시오. –
'routeplanner'보다 많은 뷰 (그룹)가 있으므로 핸들러를 원합니다. 모든보기 – Michel