[FMX][Android] Détecter la fin d'un thread secondaire dans le thread principal
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:
Code:
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; |
Ce code fonctionne avec windows mais pas avec Android.
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