2017-08-22 2 views
2

J'ai un BrowserComponent qui charge une page web qui fait quelque chose par ajax toutes les quelques secondes (supposons trente secondes, je ne me souviens plus du nombre). Ces requêtes ajax obtiennent des mises à jour et conservent la connexion.Codename One - BrowserComponent: faire en sorte que la page web fonctionne toujours en arrière-plan

Ma question est de savoir comment faire fonctionner la page Web lorsque l'application est en arrière-plan: parfois l'application fonctionne bien, d'autres fois il est tué par les o.s. quand il est en arrière-plan (je suppose que parce que parfois, quand je rouvre l'application, il redémarre).

Certaines applications ne sont jamais supprimées, comme les lecteurs multimédias, les clients de messagerie, etc.: comment puis-je faire fonctionner mon application en arrière-plan? Bien sûr, je suppose que le chargement du processeur de mon application est très faible, mais je n'ai trouvé aucun moyen de comparer son chargement de cpu avec d'autres applications.

Merci beaucoup pour votre aide.

Répondre

1

Vous trouveriez cela difficile avec un navigateur Web. Divers systèmes d'exploitation ont des comportements différents, mais même Android qui était le moins restrictif évolue vers un comportement de fond plus restrictif pour économiser la batterie.

Dans le misc section of the developer guide, nous discutons des modes d'arrière-plan, par ex. background fetch

Vous pouvez le faire à partir de Codename Un code qui compile en natif mais vous ne pouvez pas tirer parti de JavaScript car il ne donne pas assez de contrôle à l'OS.

+0

J'ai essayé de jeter un oeil à la page que vous avez liée, mais il n'y a rien à propos de "Background Fetch" ou "Modes d'arrière-plan". Cependant, j'ai trouvé ces pages: https://www.codenameone.com/blog/background-fetch.html et https://www.codenameone.com/javadoc/com/codename1/background/BackgroundFetch.html Où sont les d'autres modes d'arrière-plan documentés? –

+0

P.S .: Supposons que j'ai une application (avec ou sans BrowserComponent) et que cette application implémente (en Java) la performBackgroundFetch. Est-ce suffisant pour que l'application fonctionne en arrière-plan? Par exemple, puis-je récupérer des «données fausses» uniquement dans le but d'empêcher les o.s. de tuer l'application? –

+0

Probablement pas mais qui sait? C'est un hack et même si cela fonctionne pour vous, ni Google ni Apple ne garantiront qu'il continuera à fonctionner. En fait, les deux ont changé le comportement de fond plus d'une fois. –