我的应用程序使用HoneyComb片段,我的左侧面板有listview,右侧面板有一个带有一些TextView的MapView。最初我在map_fragment_right_side.xml中写了地图视图导致屏幕长时间冻结,所以我决定给地图充气在运行时在AsyncTask中查看是徒劳的。代码就像这样
class LoadMapTask extends AsyncTask<String, Void, Boolean>
{
MapView inflatedMapView = null;
@Override
protected void onPreExecute() {
progressbar.setVisibility( View.VISIBLE );
}
@Override
protected Boolean doInBackground(String... params)
{
try{
inflatedMapView = new MapView(getActivity(),getActivity().getResources().getString(R.string.mapkey));
addMapViewhere.addView(inflatedMapView);
inflatedMapView.getController().setCenter(getPoint(Double.valueOf(latitude),Double.valueOf(longitude)));
inflatedMapView.getController().setZoom(17);
inflatedMapView.setBuiltInZoomControls(true);
sites=new SitesOverlay();
inflatedMapView.getOverlays().clear();
inflatedMapView.getOverlays().add(sites);
}catch (Exception e) {
e.printStackTrace();
}
return true;
}
@Override
protected void onPostExecute(Boolean res)
{
if( progressbar != null )
{
progressbar.setVisibility( View.GONE );
}
}
}
我怀疑是否有可能从非UI线程中膨胀地图视图。如果有人建议我采用正确的方法,我会很高兴。我不希望屏幕冻结,直到地图被加载。
谢谢,
内甚
答案 0 :(得分:2)
从onPreExecute()
或onPostExecute()