您的位置:首页 > 其它

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

2016-10-11 21:50 369 查看
问题: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)
)));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  地图
相关文章推荐