Question

I créé une application qui communique de manière asynchrone avec le serveur. Lorsque l'application fait une demande de serveur d'une nouvelle boîte de dialogue (activité) avec notification « de chargement » est créé. L'activité principale met en œuvre des méthodes de traitement des réponses du serveur et je voudrais fermer l'activité de premier plan lorsque l'activité principale reçoit la réponse du serveur.

boîte de dialogue de notification est créé de la manière suivante:

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

}

Ainsi, lorsque l'utilisateur tente d'authentifier la méthode suivante est appelée:

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

et gère onAuthenticateResponse réponse d'authentification:

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

Je vous serais reconnaissant si quelqu'un pourrait suggérer une façon de fermer la boîte de dialogue de notification (DlgServerRequest) lorsque le onAuthenticateUser () est exécutée.

Était-ce utile?

La solution

Pourquoi ne pas utiliser un vrai ProgressDialog ou un autre Dialog? Ensuite, tout ce que vous devez faire est dismissDialog(), et vous avez terminé?

Si cela est inacceptable, vous avez deux grandes lignes d'action que je peux voir:

  1. Passez votre logique d'authentification dans la classe DlgServerRequest, il peut donc se finish().
  2. Mettez votre instance de votre classe DlgServerRequest dans un élément de données statiques si votre activité principale peut appeler finish() sur elle

Si vous choisissez l'option # 2, il est vraiment important de null que membre de données statiques pour éviter les fuites de mémoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top