Android - MVP dismiss ProgressDialog

   
Vista:

MVP dismiss ProgressDialog

Publicado por Ismael (38 intervenciones) el 26/06/2017 18:59:38
Hola buenasss, veran, tengo un problema con hacer dismiss de un progress dialog, ya que estoy creando un proyecto basandome en el MVP de Antonio Leiva (o almenos eso creo que hago) a su vez utiliza Retrofit2 y RxJava mis packages son Interactors, Interfaces, Presenters y Views. En resumen genero una petición de logion la cual si funciona y muestro el dialog, pero a la hora de darle dismiss me marca un error "LoginActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView" mi codigo del servicio es este
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@Override
    public void loginService(String user,String pass) {
        view.showProgress(true);
        interactor.serviceLogin(user, pass);
    }
 
 
@Override
    public void serviceLogin(String user, String pass) {
        final boolean[] flag = {false};
        if(user.equals("")){
            presenter.showUserError("Este campo es requerido.");
        }else if(pass.equals("")){
            presenter.showPassError("Este campo es requerido.");
        }else{
            Observable<TokenMapper> response = service.loginService(user,pass,"password");
            response.subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Subscriber<TokenMapper>() {
                        @Override
                        public void onCompleted() {
                            Log.e("Complete", "Complete");
                            presenter.goToMenu();
                        }
                        @Override
                        public void onError(Throwable e) {
                            Log.e("Error", e.getMessage());
                        }
                        @Override
                        public void onNext(TokenMapper tokenMapper) {
                            Log.e(" token", tokenMapper.getAccess_token());
                        }
                    });
        }
    }

El cual esta en una clase Interactor, despues ejecuto esto:

1
2
3
4
5
@Override
public void goToMenu() {
    view.showProgress(false);
    view.goToMenu();
}
segun leí esto se debe a que trato de acceder al progresDialog despues de que la activity ha sido cerrada.
De ante mano muchas gracias y pues mas que nada si me pudieran aconsejar donde agregar el dismiss o donde tiene que ir u.U otra cosa, y de esta forma creo el progressDialog:
1
2
3
4
5
6
7
8
9
10
11
@Override
    public void showProgress(boolean option) {
        ProgressDialog progressDialog = new ProgressDialog(this);
        if(option){
        progressDialog.setMessage("Iniciando Sesión...");
        progressDialog.setCancelable(false);
        progressDialog.show();}
        else{
            progressDialog.dismiss();
        }
    }
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder