60 votes

Comment exécuter du code en arrière-plan, même lorsque l'écran est éteint ?

J'ai une application simple de minuterie dans Flutter, qui affiche un compte à rebours avec le nombre de secondes restantes. J'ai :

new Timer.periodic(new Duration(seconds: 1), _decrementCounter);

Il semble fonctionner correctement jusqu'à ce que l'écran de mon téléphone s'éteigne (même si je passe à une autre application) et se mette en veille. Ensuite, la minuterie se met en pause. Existe-t-il un moyen recommandé de créer un service qui fonctionne en arrière-plan même lorsque l'écran est éteint ?

2 votes

La vraie question est peut-être la suivante : est-il possible d'exécuter du code en arrière-plan (par exemple, des minuteries) pour une application Flutter lorsque l'activité est détruite ? Dans mon cas, le minuteur continuerait à fonctionner même si j'éteins l'écran (voir réponse ci-dessous).

0 votes

Vous ne pouvez pas faire cela complètement du côté client, je pense que vous devez lancer une minuterie sur le serveur et la synchroniser avec le front-end, quelque chose comme un flux de données de sorte que lorsque le téléphone se met en veille et revient à l'application, il devrait commencer à partir de la minuterie actuelle sur le serveur.

0 votes

Vous pouvez également consulter stackoverflow.com/a/59057145/6668797 pour d'autres moyens

0voto

kururu95 Points 21

Je pense que vous devez d'abord empêcher le système de tuer l'activité FlutterActivity lorsque vous cliquez sur le bouton retour.

vous pouvez y parvenir en appelant le code natif d'Android depuis flutter Il existe des fonctions appelées moveToBack(true) vous permet de maintenir l'activité de FlutterActivity.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X