Bonjour,
Dans une app Android, j'ai une requête à une base de données qui prend de 5 à 10 secondes pour récupérer les informations demandées.
Je désire donc ajouter à l'app un fonctionnement du style:
- J'affiche un écran "chargement en cours..."
- Je fais la requête
- A la fin de la requête, j'efface l'écran "chargement en cours..."
Aucun problème sur windows, mais je n'arrive pas à avoir ce fonctionnement sur Android: Impossible d'effacer l'écran. Je pense que la ligne de code qui efface l'écran s'exécute avant la fin de la requête et donc au final l'app reste bloquée sur l'écran "chargement en cours...".
J'ai essayé avec un thread du style:
Ce code fonctionne avec windows mais pas avec Android.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure TForm1.GetDataFromServer; begin Tthread.CreateAnonymousThread( procedure begin TabControl1.ActiveTab:=tabLoading; //Affichage de l'écran "Chargement en cours" {Appel à la procédure qui effectue la requête et traite les données reçues}; Tthread.Synchronize(TThread.CurrentThread, procedure begin TabControl1.ActiveTab:=tabSynchro; //Suppression de l'écran "Chargement en cours" par l'appel d'un autre écran end); end).Start;
Je ne suis pas un grand spécialiste des Thread. Est-ce que je peux détecter en dehors du Thread (après le code ".start;") la fin du Thread pour placer ma commande "TabControl1.ActiveTab:=tabSynchro;"? Si oui, comment?
Est-ce qu'il y a une autre solution?
Merci de votre aide
Partager