如何从非UI线程中扩充MapView

时间:2011-07-21 17:23:12

标签: android android-mapview android-3.0-honeycomb


我的应用程序使用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线程中膨胀地图视图。如果有人建议我采用正确的方法,我会很高兴。我不希望屏幕冻结,直到地图被加载。
谢谢,
内甚

1 个答案:

答案 0 :(得分:2)

onPreExecute()onPostExecute()

充气