Tôi gặp vấn đề sau. Tôi drawning tuyến đường trên MapView trong chủ đề riêng biệt như thế này:Tại sao getHandler() trả về 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();
}
Nhưng khi tôi nhận được xử lý nó sẽ trả về null, mặc dù trong chế độ gỡ lỗi điều khiển trở lại và thông báo lỗi sẽ được hiển thị. các vấn đề có thể là gì?
PS Có thể đó là cách không chính xác để có được Trình xử lý, nhưng tôi không thể tìm thấy thông tin về nó.
Tôi tin rằng bạn không thể vẽ bất kỳ thứ gì bên ngoài chuỗi chính. Kiểm tra điều này: http://android-developers.blogspot.com.br/2009/05/painless-threading.html – Bilthon
Có, bạn nói đúng, nhưng tôi thêm lớp phủ trong chuỗi giao diện người dùng và sau đó gọi postInvalidate trên mapView, có chỉ tính toán trong chuỗi riêng biệt. – Bracadabra
bạn có thể cần một 'chạy' ở đâu đó xung quanh – njzk2