为什么getHandler()返回null?

我有以下问题。 我正在像这样在单独的线程中在mapview上绘制路线:

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(); } 

但是,当我得到处理程序它返回空,虽然在debugging模式处理程序返回并显示错误消息。 问题是什么?

PS可能是得到处理程序的不正确的方式,但我找不到有关它的信息。

  • 教程 - Android地图引脚放置animation - 工作正确
  • 在我的android地图叠加层中不断调用draw
  • 使用osmdroid自定义信息气泡的重叠项目
  • 通过舍入坐标矩形caching重叠 - 如何?
  • 一个适用于所有开发者的Google Maps密钥?
  • 如何检测Android中的Google MapView运动?
  • 如何在Android中获取地图上的纬度和经度?
  • 在MapView中重新定位Google徽标
  • getHandler方法返回null因为该视图没有附加:

     public Handler getHandler() { if (mAttachInfo != null) { return mAttachInfo.mHandler; } return null; } 

    mAttachInfodispatchAttachedToWindow设置,在dispatchAttachedToWindow mAttachInfo

    而不是mapView.getHandler().post()你可以直接使用mapView.post() (它似乎使用getHandler().post()ViewRootImpl.getRunQueue().post() )。