Los mapas de Android dejan de responder después de reanudar el fragmento

A continuación se enumera mi código básico para controlar los mapas. Hago algunas cosas realmente avanzadas más tarde. Todo parece funcionar perfectamente, hasta queonResume().

Aquí está el diseño, navega a través de la aplicación en una sola actividad, con varios fragmentos. EstamapFragment Está contenido dentro de un fragmento. Esto funciona bien. Sin embargo, cuando agrego otro fragmento y empujo este en la pila trasera, cuando vuelvo más tarde, el mapa no responde.

Intenté arreglar esto moviendo mi llamada asetupMaps(); en elonResume(), sin embargo esto causógMaps ser nulo cuando lo reciba degMaps = mapFragment.getMap(); en elsetViews().

¿Cómo debería manejar esto?

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        root = inflater.inflate(R.layout.fragment_maps, container, false);

        setupMaps();
        return root;
    }

    private void setupMaps()
    {
        gMaps = null;
        fm = getActivity().getSupportFragmentManager();

        mapFragment = SupportMapFragment.newInstance();
        android.support.v4.app.FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.flMapContainer, mapFragment).commit();

    }


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

        mapFragment.onResume();
        setViews();
    }

    private void setViews()
    {
        gMaps = mapFragment.getMap();
        getData(); // initializes overlays, markers, polygons etc.
    }

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta