
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
El cual esta en una clase Interactor, despues ejecuto esto:
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:
Gracias.
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();
}
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();
}
}
Valora esta pregunta


0