Rafraichissement d'une vue pendant un calcul long
MGD Software
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
-
MGD Software Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
MGD Software Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème que je n'arrive pas à résoudre. J'ai beaucoup cherché sur Internet, sans trouver de réponse qui corresponde à ce que je cherche.
Le problème est le suivant:
Dans une activité, j'effectue un travail assez long.
J'ai donc placé une progressBar dans ma feuille.
En début de calcul, je mets sa visibilité à VISIBLE.
En fin de calcul, je remets sa visibilité à GONE.
Mais... Elle ne s'affiche jamais !
Je suppose que la vue n'est pas rafraichie pendant le calcul. J'ai souvent le même problème en C#, mais il existe la méthode Refresh() qui règle le problème. On peut aussi appeler "Application.DoEvents()" qui rend la main à Windows un bref instant pour rafraichir toutes les applications.
Je n'ai pas trouvé l'équivalent dans Android. Existe-t-il une méthode pour forcer le rafraichissement d'une vue pendant que le code tourne ?
Note : je ne peux pas faire mon calcul dans une tâche de fond pour des raisons de séquencement avec d'autres parties du code.
Merci de me donner des pistes.
J'ai un petit problème que je n'arrive pas à résoudre. J'ai beaucoup cherché sur Internet, sans trouver de réponse qui corresponde à ce que je cherche.
Le problème est le suivant:
Dans une activité, j'effectue un travail assez long.
J'ai donc placé une progressBar dans ma feuille.
En début de calcul, je mets sa visibilité à VISIBLE.
En fin de calcul, je remets sa visibilité à GONE.
Mais... Elle ne s'affiche jamais !
Je suppose que la vue n'est pas rafraichie pendant le calcul. J'ai souvent le même problème en C#, mais il existe la méthode Refresh() qui règle le problème. On peut aussi appeler "Application.DoEvents()" qui rend la main à Windows un bref instant pour rafraichir toutes les applications.
Je n'ai pas trouvé l'équivalent dans Android. Existe-t-il une méthode pour forcer le rafraichissement d'une vue pendant que le code tourne ?
Note : je ne peux pas faire mon calcul dans une tâche de fond pour des raisons de séquencement avec d'autres parties du code.
Merci de me donner des pistes.
A voir également:
- Rafraichissement d'une vue pendant un calcul long
- Vue satellite en direct gratuit de ma maison - Guide
- Pc long a demarrer - Guide
- Calcul moyenne excel - Guide
- Vue de profil instagram - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
2 réponses
Hello,
Dans une activité, j'effectue un travail assez long.Les calculs longs sont à faire en dehors du thread principal. Si tu es en Kotlin, regardes du côté des Coroutine
Je suis d'accord, ce n'est pas la panacée.
Mais de toutes façons il faut bloquer l'application tant que le résultat des calculs n'est pas connu. Alors quel est l'intérêt d'avoir une tâche asynchrone, sinon la nécessité de générer une usine à gaz pour l'attente ? Et si j'utilise une tâche synchrone (ça existe ??) cela revient au même car il n'y aura pas de rafraichissement de la vue.
J'ai peu d'expérience en Android et la communication entre threads m'est encore inconnue. J'avoue que j'ai un peu de répulsion au vu de la complexité du développement sous Android comparé à d'autres langages comme le C# ou Visual Basic.
De toutes façons, Android Studio EST une usine à gaz : 25 Mo, 248 répertoires pour une appli comportant une unique vue, dont seulement 34 fichiers et moins de 200 Ko de sources et d'exécutable, ressources comprises...
Mais de toutes façons il faut bloquer l'application tant que le résultat des calculs n'est pas connu. Alors quel est l'intérêt d'avoir une tâche asynchrone, sinon la nécessité de générer une usine à gaz pour l'attente ? Et si j'utilise une tâche synchrone (ça existe ??) cela revient au même car il n'y aura pas de rafraichissement de la vue.
J'ai peu d'expérience en Android et la communication entre threads m'est encore inconnue. J'avoue que j'ai un peu de répulsion au vu de la complexité du développement sous Android comparé à d'autres langages comme le C# ou Visual Basic.
De toutes façons, Android Studio EST une usine à gaz : 25 Mo, 248 répertoires pour une appli comportant une unique vue, dont seulement 34 fichiers et moins de 200 Ko de sources et d'exécutable, ressources comprises...
En fait en C#, les calculs doivent aussi se faire dans un thread différent du thread principal, les solutions que tu utilises sont déconseillées