aMap.animateCamera不起作用,捕获异常Handler sending message to a Handler on a dead thread

来源:互联网 发布:什么行业招数据分析 编辑:程序博客网 时间:2024/04/28 18:31

问题:aMap.animateCamera不起作用,捕获异常Handler sending message to a Handler on a dead thread;

原因
地图布局的复用造成的,去掉地图布局的复用就行了。

onCreateView中复用造成的问题:

@Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        if (mapLayout == null) {            mapLayout = inflater.inflate(R.layout.fragment_home_map, null);            mapView = (TextureMapView) mapLayout.findViewById(R.id.mv_home_map_map);            mapView.onCreate(savedInstanceState);            aMap = mapView.getMap();        } else {            if (mapLayout.getParent() != null) {                ((ViewGroup) mapLayout.getParent()).removeView(mapLayout);            }            if (mapView == null) {                 mapView = (TextureMapView) mapLayout.findViewById(R.id.mv_home_map_map);            }            mapView.onCreate(savedInstanceState);            if (aMap == null){                aMap = mapView.getMap();            }        } }

解决方案代码,不复用布局:

@Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        mapLayout = inflater.inflate(R.layout.fragment_home_map, null);        mapView = (TextureMapView) mapLayout.findViewById(R.id.mv_home_map_map);        mapView.onCreate(savedInstanceState);        aMap = mapView.getMap();        return mapLayout;    }

布局复用导致的问题,定位成功后,更新当前中心点会出现的异常:

aMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(                    new LatLng(latitude, longitude),//新的中心点坐标                    18, //新的缩放级别                    30, //俯仰角0°~45°(垂直与地图时为0)                    0  ////偏航角 0~360° (正北方为0)            )));
1 0
原创粉丝点击