Android ProgressDialog未在片段中显示

Android ProgressDialog未在片段中显示,android,android-fragments,android-asynctask,progressdialog,Android,Android Fragments,Android Asynctask,Progressdialog,我有以下课程: ... public class FragmentMapa extends Fragment { /* * Atributos */ private static String LOG_TAG = "FragmentMapa"; private HomeActivity homeActivity; private GoogleMap mMapa; private DrawerLayout mDrawer;

我有以下课程:

...

public class FragmentMapa extends Fragment {

    /*
     * Atributos
     */
    private static String LOG_TAG = "FragmentMapa";

    private HomeActivity homeActivity;
    private GoogleMap mMapa;

    private DrawerLayout mDrawer;
    private ActionBarDrawerToggle mDrawerToggle;
    private ListView mDrawerList;
    private ListView mDrawerRightList;
    private RelativeLayout mDrawerRelativeLayout;
    private String[] mRightDrawerMenuTitles;
    private ImageView mDiputacionLogo;

    private IncidenciasFetchAsyncTask mFetchIncidenciasTask;
    private Incidencias mIs;
    private CamarasFetchAsyncTask mFetchCamarasTask;
    private Camaras mCams;
    private ViabilidadesInvernalesFetchAsyncTask mFetchViabilidadesInvernalesTask;
    private ViabilidadesInvernales mVis;

    private static LatLng POS_CENTRAL = new LatLng(43.243968,-2.896957);
    private static LatLng limiteSurOesteBizkaia = new LatLng(42.895853,-3.594589);
    private static LatLng limiteNorEsteBizkaia = new LatLng(43.540351,-2.180099);
    private static final LatLngBounds BOUNDS = new LatLngBounds(limiteSurOesteBizkaia, limiteNorEsteBizkaia);

    private ArrayList<Marker> markersIncidencias = new ArrayList<Marker>();
    private ArrayList<Marker> markersObras = new ArrayList<Marker>();
    private ArrayList<Marker> markersCamaras = new ArrayList<Marker>();
    private ArrayList<Marker> markersViabilidadInvernal = new ArrayList<Marker>();

    /*
     * Métodos
     */

    public FragmentMapa() {

    }

    @Override
    public void onAttach (Activity activity) {
        super.onAttach(activity);
        homeActivity = (HomeActivity) activity;

        mRightDrawerMenuTitles = getResources().getStringArray(R.array.mapa_submenu_options);

        mDrawer = homeActivity.getmDrawer();
        mDrawerRightList = homeActivity.getmDrawerRightList();
        mDrawerRightList.setAdapter(new ArrayAdapter<String>(
                homeActivity.getSupportActionBar().getThemedContext(), 
                R.layout.rightdrawer_map_list_item,
                mRightDrawerMenuTitles
                ));

        mDrawerRightList.setOnItemClickListener(new DrawerItemClickListener());
    }

    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    }

    @Override
    public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.mapa, container, false);

        setupMapIfNeeded();

        return rootView;

    }

    private void setupMapIfNeeded() {

        if( mMapa == null ){
            SupportMapFragment smf = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal);

            if( smf != null ){
                //Toast.makeText(getActivity(), "VAAAMOOSS", Toast.LENGTH_SHORT).show();
                mMapa = smf.getMap();
            }/*else{
                Toast.makeText(getActivity(), "smf es null...", Toast.LENGTH_SHORT).show();
            }*/

            if( mMapa != null ){

                setupMap();

            }

        }

    }

    private void setupMap() {

        //Toast.makeText(getActivity(), "A configurar el mapa!!", Toast.LENGTH_SHORT).show();

        CameraPosition camPos;
        camPos = new CameraPosition.Builder()
        .target(POS_CENTRAL) 
        .zoom((float) 9.5)
        .build();

        final CameraUpdate camUpd =
                CameraUpdateFactory.newCameraPosition(camPos);

        mMapa.animateCamera(camUpd);
        mMapa.setOnCameraChangeListener(new OnCameraChangeListener() {

            @Override
            public void onCameraChange(CameraPosition newPos) {

                float maxZoom = 17.0f;

                if( !BOUNDS.contains(newPos.target) ){
                    //Mover la cámara al centro si se 
                    //va más allá de los límites

                    mMapa.animateCamera(camUpd);
                }

                if(newPos.zoom > maxZoom){
                    mMapa.animateCamera(CameraUpdateFactory.zoomTo(maxZoom));
                }

            }
        });

        mMapa.setOnInfoWindowClickListener( new OnInfoWindowClickListener(){

            public void onInfoWindowClick(Marker aMarker) {

                Toast.makeText(getActivity(), "info window pulsado", Toast.LENGTH_SHORT).show();
                if( markersCamaras.contains(aMarker) ){

                    Camara c = mCams.getCamaraByCoord(aMarker.getPosition());

                    homeActivity.showCameraFragment(c);

                }
            }

        });

    }

    @Override
    public void onActivityCreated (Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    }

    @Override
    public void onViewStateRestored (Bundle savedInstanceState) {
        super.onViewStateRestored(savedInstanceState);

    }

    @Override
    public void onStart () {
        super.onStart();

    }

    @Override
    public void onResume () {
        super.onResume();

    }

    @Override
    public void onPause () {
        super.onPause();
    }

    @Override
    public void onStop () {
        super.onStop();
    }

    @Override
    public void onDestroyView () {
        super.onDestroyView();
    }

    @Override
    public void onDestroy () {
        super.onDestroy();
    }

    @Override
    public void onDetach () {
        super.onDetach();
    }

    /* The click listener for ListView in the navigation drawer */
    private class DrawerItemClickListener implements OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            final int thePos = position;
            mDrawer.setDrawerListener( new DrawerLayout.SimpleDrawerListener(){

                @Override
                public void onDrawerClosed(View drawerView) {

                    boolean wasChecked = !mDrawerRightList.isItemChecked(thePos);

                    //Toast.makeText(homeActivity, "Item pulsado: " + wasChecked, Toast.LENGTH_SHORT).show();
                    mDrawerRightList.setItemChecked(thePos, !wasChecked);

                    switch (thePos) {
                        case 0:
                            //Incidencias
                            //Toast.makeText(homeActivity, "Incidencias", Toast.LENGTH_SHORT).show();

                            if(!wasChecked){
                                //Toast.makeText(homeActivity, "Incidencias estaba sin pulsar", Toast.LENGTH_SHORT).show();

                                getIncidenciasObras();
                                introducirIncidencias();
                            }else{
                                //Toast.makeText(homeActivity, "Incidencias estaba pulsado", Toast.LENGTH_SHORT).show();
                                removeIncidenciasMarkers();
                            }

                            break;

                        case 1:
                            //Obras
                            //Toast.makeText(homeActivity, "Obras", Toast.LENGTH_SHORT).show();

                            if(!wasChecked){
                                //Toast.makeText(homeActivity, "Obras estaba sin pulsar", Toast.LENGTH_SHORT).show();
                                getIncidenciasObras();
                                introducirObras();
                            }else{
                                //Toast.makeText(homeActivity, "Obras estaba pulsado", Toast.LENGTH_SHORT).show();
                                removeObrasMarkers();
                            }

                            break;  

                        case 2:
                            //Cámaras
                            //Toast.makeText(homeActivity, "Cámaras", Toast.LENGTH_SHORT).show();

                            if(!wasChecked) {
                                getCamaras();
                                introducirCamaras();
                            }else
                                removeCamarasMarkers();
                            break;

                        case 3:
                            //Viabilidad invernal
                            //Toast.makeText(homeActivity, "Viabilidad invernal", Toast.LENGTH_SHORT).show();

                            if(!wasChecked){
                                getViabilidadesInvernales();
                                introducirViabilidadInvernal();
                            }else
                                removeViabilidadInvernalMarkers();
                            break;

                        default:
                            //Toast.makeText(homeActivity, "Default", Toast.LENGTH_SHORT).show();
                            break;

                    }

                }

            });

            if(mDrawer.isDrawerOpen(Gravity.END))
                mDrawer.closeDrawer(mDrawerRightList);
        }
    }

    private void getViabilidadesInvernales(){
        mVis = ViabilidadesInvernales.getInstance();
        if(mVis.isEmptyViabilidadesInvernales()){
            mFetchViabilidadesInvernalesTask = new ViabilidadesInvernalesFetchAsyncTask(homeActivity);
            try {
                mVis = mFetchViabilidadesInvernalesTask.execute("es").get();
            } catch (InterruptedException e) {
                Log.e(LOG_TAG, "Error InterruptedException: " + e.getMessage());
                e.printStackTrace();
            } catch (ExecutionException e) {
                Log.e(LOG_TAG, "Error ExecutionException: " + e.getMessage());
                e.printStackTrace();
            }
        }

    }

    ...

    private void introducirViabilidadInvernal() {

        if(markersViabilidadInvernal.isEmpty()){
            Marker aMarker;

            for (ViabilidadInvernal vi : mVis.getViabilidades()) {

                String estado = "";
                BitmapDescriptor icon;
                if(vi.getEstado() == PuertoEstado.ABIERTO){
                    estado = getResources().getString(R.string.mapa_puerto_abierto);
                    icon = BitmapDescriptorFactory.fromResource(R.drawable.marker_puertoabierto);
                }else{
                    //vi.getEstado() == PuertoEstado.CERRADO
                    estado = getResources().getString(R.string.mapa_puerto_cerrado);
                    icon = BitmapDescriptorFactory.fromResource(R.drawable.marker_puertocerrado);
                }

                aMarker = mMapa.addMarker(new MarkerOptions()
                .position(vi.getCoord())
                .title(vi.getT())
                .snippet(estado)
                .icon(icon));

                markersViabilidadInvernal.add(aMarker);

            }

        }

    }


    private void removeViabilidadInvernalMarkers() {

        for(Marker aMarker : markersViabilidadInvernal){
            aMarker.remove();
        }

    }

    ...

    private class ViabilidadesInvernalesFetchAsyncTask extends AsyncTask<String, Void, ViabilidadesInvernales>{

        private ProgressDialog mPd;
        private HomeActivity ownerActivity;
        private Context context;
        private Exception exceptionToBeThrown;

        public ViabilidadesInvernalesFetchAsyncTask(Activity activity){
            this.ownerActivity = (HomeActivity) activity;
            context = activity;
            this.exceptionToBeThrown = null;
            mPd = new ProgressDialog(context);
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            mPd.setTitle("cargando");
            mPd.setMessage("miralo");
            //mPd.setTitle(getResources().getString(R.string.mapa_cargando_titulo));
            //mPd.setMessage(getResources().getString(R.string.mapa_cargando, getResources().getString(R.string.mapa_cargando_elemento_viabilidad)));
            mPd.setCancelable(false);
            mPd.setIndeterminate(true);
            mPd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            mPd.show();

        }

        @Override
        protected ViabilidadesInvernales doInBackground(String... params) {
            String idioma = params[0];
            if(!idioma.equalsIgnoreCase("es") && !idioma.equalsIgnoreCase("eu")){
                idioma = "es";
            }
            SystemClock.sleep(5000);
            ViabilidadesInvernalesParser vip = new ViabilidadesInvernalesParser();
            ViabilidadesInvernales lasViabilidades = vip.parse(idioma);

            Log.d(LOG_TAG, lasViabilidades.toString());

            ViabilidadesInvernales vis = ViabilidadesInvernales.getInstance();

            return vis;

        }

        @Override
        protected void onPostExecute(ViabilidadesInvernales vis) {
            super.onPostExecute(vis);
            mVis = vis;

            if(mPd != null){
                mPd.dismiss();
            }

            // Check if exception exists.
            //if (exceptionToBeThrown != null) {
                //TODO
                //ownerActivity.handleXXX();
                //throw exceptionToBeThrown;
            //}
        }

    }
    ....

}
。。。
公共类FragmentMapa扩展了Fragment{
/*
*心房肌
*/
私有静态字符串LOG_TAG=“FragmentMapa”;
私人家庭活动;
私人谷歌地图;
私人抽屉布置图;
私有操作bardrawertoggle mDrawerToggle;
私有列表视图mDrawerList;
私有列表视图mDrawerRightList;
私有相对性布局;
私有字符串[]mrightdrawerminutitles;
私有ImageView mDiputacionLogo;
私人事件处理异步任务MFETCHENCIDENCIASTASK;
私人事故管理信息系统;
私人CamarasFetchAsyncTask mFetchCamarasTask;
私人卡马拉斯mCams;
私有通道InvernalesFetchAsyncTask MFETCH通道InvernalesTask;
私人车道专用mVis;
专用静态车床位置=新车床(43.243968,-2.896957);
私人静态LatLng limiteSurOesteBizkaia=新LatLng(42.895853,-3.594589);
私人静态LatLng limiteNorEsteBizkaia=新LatLng(43.540351,-2.180099);
私有静态最终LatLngBounds边界=新LatLngBounds(limiteSurOesteBizkaia,LimitenOroEsteBizkaia);
private ArrayList markersIncidencias=new ArrayList();
private ArrayList markersObras=new ArrayList();
private ArrayList markersCamaras=new ArrayList();
私有ArrayList MarkersViabilidInvernal=新ArrayList();
/*
*梅托多
*/
公共片段mapa(){
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
家庭活动=(家庭活动)活动;
mRightDrawerMenuTitles=getResources().getStringArray(R.array.mapa_子菜单_选项);
mDrawer=homeActivity.getmDrawer();
mDrawerRightList=homeActivity.getmDrawerRightList();
mDrawerRightList.setAdapter(新阵列适配器)(
homeActivity.getSupportActionBar().getThemedContext(),
R.layout.rightdrawer\u地图\u列表\u项目,
mRightDrawerMenuTitles
));
mDrawerRightList.setOnItemClickListener(新的DrawerItemClickListener());
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.mapa,容器,false);
setupmapifneed();
返回rootView;
}
私有void setupMapIfNeeded(){
如果(mMapa==null){
SupportMapFragment smf=(SupportMapFragment)getChildFragmentManager();
如果(smf!=null){
//Toast.makeText(getActivity(),“VAAAMOOSS”,Toast.LENGTH_SHORT.show();
mMapa=smf.getMap();
}/*否则{
Toast.makeText(getActivity(),“smf es null…”,Toast.LENGTH_SHORT.show();
}*/
如果(mMapa!=null){
setupMap();
}
}
}
私有void setupMap(){
//Toast.makeText(getActivity(),“配置程序el-mapa!!”,Toast.LENGTH\u SHORT.show();
CameraPosition camPos;
camPos=新的CameraPosition.Builder()
.目标(中环位置)
.缩放((浮动)9.5)
.build();
最终镜头更新camUpd=
CameraUpdateFactory.newCameraPosition(camPos);
mMapa.animateCamera(camUpd);
mMapa.setOnCameraChangeListener(新OnCameraChangeListener(){
@凌驾
CameraChange上的公共无效(CameraPosition newPos){
浮点最大缩放=17.0f;
如果(!BOUNDS.contains(newPos.target)){
//卡马拉中心酒店
//瓦马斯·阿勒德·洛斯·莱米特斯
mMapa.animateCamera(camUpd);
}
如果(newPos.zoom>maxZoom){
mMapa.animateCamera(CameraUpdateFactory.zoomTo(maxZoom));
}
}
});
mMapa.setOnInfoWindowClickListener(新的OnInfoWindowClickListener(){
公共无效信息窗口单击(标记aMarker){
Toast.makeText(getActivity(),“信息窗口脉冲”,Toast.LENGTH_SHORT).show();
if(markersCamaras.contains(aMarker)){
Camara c=mCams.getCamaraByCoord(aMarker.getPosition());
家庭活动。showCameraFragment(c);
}
}
});
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
@凌驾
ViewStateRestored上的公共无效(Bundle savedInstanceState){
super.onViewStateRestored(savedInstanceState);
}
@凌驾
公共void onStart(){
super.onStart();
}
@凌驾
恢复时公开作废(){
super.onResume();
}
@凌驾
暂停时的公共无效(){
super.onPause();
}
@凌驾
顶部的公共无效(){
super.onStop();
}
@凌驾
公共无效onDestroyView(){
super.onDestroyView();
}
@凌驾
公共存储区(){
super.ondestory();
}
@凌驾
公共无效连接(){
super.onDetach();
}
/*在导航抽屉中单击ListView的侦听器*/
私有类DrawerItemClickListener实现了OnItemClickListener{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
最终int thePos=位置;
mDrawer.setDrawerListener(新的DrawerLayout.SimpleDrawerListener(){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
布尔值wasChecked=!mDrawerRightList.isItemChecked(POS);
//Toast.makeText(ho)