Q:

Continuar execução depois que aceitar a Permissão Android

Estou fazendo um teste usando o Google Maps. Ela está funcionando mas está desse jeito. Assim que o app é iniciado, ele verifica a permissão chamando a classe Permissao. Se o usuário aceitar, o app inicia e se ele recusar o app fechar com uma mensagem informando que é preciso aceitar as permissões. Até ai tudo bem, porém se ele aceitar a permissão o app só funciona se ele fechar e abrir novamente o aplicativo ou se ele girar a tela.
Basicamente o app pega a localização atual do dispositivo e mostra no mapa. Gostaria que assim que ele escolhesse permitir, o app já funcionasse sem os detalhes que mencionei acima.
   private GoogleMap mMap;
    private Marker marcador;
    double lat = 0.0;
    double lng = 0.0;
    private String[] permissoesNecessarias = new String[]{
            android.Manifest.permission.ACCESS_FINE_LOCATION,
            android.Manifest.permission.ACCESS_COARSE_LOCATION
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        Permissao.validaPermissoes(1, this, permissoesNecessarias);

        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        minhaLocalizacao();

}
    private void adicionarMarcador(double lat, double lng) {
        LatLng coordenadas = new LatLng(lat, lng);
        CameraUpdate minhaLocalizacao = CameraUpdateFactory.newLatLngZoom(coordenadas, 16);

        if (marcador != null) marcador.remove();
        marcador = mMap.addMarker(new MarkerOptions()
                .position(coordenadas)
                .title("Você está aqui")
                .icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher_round)));
        mMap.animateCamera(minhaLocalizacao);
    }

    private void atualizarLocalizacao(Location location) {

        if (location != null) {

            lat = location.getLatitude();
            lng = location.getLongitude();
            adicionarMarcador(lat, lng);
        }
    }

    LocationListener locListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {

           atualizarLocalizacao(location);
        }

        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {

        }

        @Override
        public void onProviderEnabled(String s) {

        }

        @Override
        public void onProviderDisabled(String s) {

        }
    };

  private void minhaLocalizacao() {

        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
       if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) ==
                PackageManager.PERMISSION_GRANTED &&
                ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
                        PackageManager.PERMISSION_GRANTED) {
}

           Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
           atualizarLocalizacao(location);
           locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, locListener);
       }

    }

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        for ( int resultado : grantResults){
            if ( resultado == PackageManager.PERMISSION_DENIED){
                alertaValidacaoPermissao();
            }
        }
    }

    private void alertaValidacaoPermissao() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Permissão");
        builder.setMessage("Para usar o app você precisa aceitar as permissões ");
        builder.setPositiveButton("Confirmar", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                finish();
            }
        });
        builder.create();
        builder.show();
    }

}

A:

No seu método onRequestPermissionsResult você não tratou o caso dele ter aceito as permissões.
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        for ( int resultado : grantResults){
            if ( resultado == PackageManager.PERMISSION_DENIED){
                alertaValidacaoPermissao();
                return;
            }
        }
        minhaLocalizacao();
    }

