He creado una aplicación con la que es la comunicación asincrónica con el servidor. Cuando la aplicación realiza una petición al servidor un nuevo cuadro de diálogo (de la actividad) con «carga» de la notificación es creado. La principal actividad que se implementa métodos para el manejo de las respuestas del servidor y me gustaría cerrar el primer plano de la actividad cuando la actividad principal recibe la respuesta del servidor.

Cuadro de diálogo de notificación se crea de la siguiente manera:

 private void showServerRequestDialog(String actionLabel){
    Intent intent = new Intent(this, DlgServerRequest.class);
    intent.putExtra(SERVER_REQUEST_ACTION, actionLabel);
    startActivity(intent);

}

así que cuando el usuario intenta autenticar el siguiente método es llamado:

private void authenticateUser(String IMEI, String username, String password){
    mEncoderConnection.authenticateRequest(IMEI, username, password);
    showServerRequestDialog("Authenticating...");
}

y onAuthenticateResponse controla la autenticación de respuesta:

public void onAuthenticateResponse(AuthenticateResponse pkg) {
    //code for response handling
    //TODO: close ServerRequestDialog
    }
}

Agradecería si alguien podría sugerir una manera de cerrar el cuadro de diálogo de notificación (DlgServerRequest) cuando el onAuthenticateUser() es ejecutada.

InformationsquelleAutor Niko Gamulin | 2009-09-28

1 Comentario

  1. 5

    ¿Por qué no utilizar un real ProgressDialog o algún otro Dialog? Entonces, todo lo que necesitas hacer es dismissDialog(), y listo?

    Si que es inaceptable, tiene dos principales cursos de acción que puedo ver:

    1. Mover su lógica de autenticación en el DlgServerRequest clase, por lo que puede finish() sí mismo.
    2. Poner su instancia de su DlgServerRequest clase en un miembro de datos estáticos por lo que su actividad principal puede llamar finish() en él

    Si elige la opción #2, es muy importante para null que miembro de datos estáticos para evitar fugas de memoria.

Dejar respuesta

Please enter your comment!
Please enter your name here