다음과 같은 문제가 있습니다.getHandler()가 null을 반환하는 이유는 무엇입니까?
public void drawRoute(final MapView mapView) {
new Thread(new Runnable() {
public void run() {
try {
//Do something useful
} catch (SomeException se) {
Handler handler = mapView.getHandler();
handler.post(/*show error in UI thread*/)
}}
}).start();
}
을하지만 핸들러를 얻을 때 디버그 모드에서 핸들러가 반환하고 오류 메시지가 표시되어 있지만 그것은 null을 반환 :이 같은 별도의 스레드에서지도보기에 경로를 drawning하고 있습니다. 문제는 무엇이 될 수 있습니까?
PS 처리기를 가져 오는 것이 잘못된 방법 일 수는 있지만 정보를 찾을 수 없습니다. 뷰가 부착되어 있지 않기 때문에
나는 메인 스레드 바깥에 아무것도 그릴 수 없다고 생각한다. 이것을 확인하십시오 : http://android-developers.blogspot.com.br/2009/05/painless-threading.html – Bilthon
예, 맞습니다,하지만 UI 스레드에 오버레이를 추가 한 다음 mapView에 postInvalidate를 호출했습니다. 별도의 스레드에서만 계산. – Bracadabra
어쩌면 – njzk2