dans cette application, l'utilisateur se connecte et ses informations d'identification sont vérifiées par rapport à un serveur.Vous devez afficher l'écran de chargement pendant que l'application interroge le serveur
L'utilisateur peut attendre quelques secondes, selon la vitesse à laquelle le téléphone peut ouvrir une connexion de données, voire pas du tout. J'ai besoin de boîte de dialogue disant "veuillez attendre" ou "vérifier les informations d'identification" ou quelque chose de long ces lignes après que l'utilisateur clique.
Ordre visuel désiré: appuyez sur log in -> "Veuillez patienter" dialogue est montré dans ce même activité -> quand le résultat est à partir du serveur une nouvelle activité est chargée (ou erreur est renvoyée)
ordre visuel actuel: est chargé> nouvelle activité
- presse Connexion -> attend l'utilisateur que si l'application est geléeJ'essaie de faire ce thread avec AsyncTask mais je ne comprends pas tout de suite!
class Progressor extends AsyncTask<Void, Void, Void> {
ProgressDialog dialog;
protected void onPreExecute(){
dialog = ProgressDialog.show(Login.this, "Logging In",
"Verifying Credentials, Please wait...", true);
}
Ensuite, dans ma méthode oncreate j'avais tout de l'autre logique comme utilisateur en cliquant sur le bouton et tout ça, mais je l'ai depuis déplacé que dans doInBackGround de la méthode AsyncTask fonction
/* When the Login Button is clicked: */
Button loginButton = (Button) findViewById(R.id.loginButton);
loginButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Progressor showMe = new Progressor();
showMe.onPreExecute();
showMe.doInBackground(null);
showMe.onPostExecute();
et onPostExecute simplement rejette la boîte de dialogue
Pourquoi cela ne fonctionne-t-il pas et comment devrait-il être réorganisé? Quelle variable dois-je passer dans la fonction showMe.doInBackGround(), il est vide. Dans le débogage, il ne sort jamais ici
@Override
protected Void doInBackground(Void... arg0) {
Merci, cette précision l'a vraiment fait pour moi! – CQM