Comment empêcher les applications de se tuer pendant le sommeil?

11

J'ai un Droid 2. J'ai un long jeu gourmand en ressources (âmes spectrales) que je voudrais laisser fonctionner pendant que je n'utilise pas mon téléphone. Si je clique sur le bouton "Accueil" d'Android pour revenir à l'écran d'accueil et que je relance immédiatement le jeu, ce sera exactement là où je me suis arrêté. Même chose si j'appuie sur le bouton d'alimentation pour dormir, puis allume immédiatement le téléphone, déverrouille et relance le jeu.

Si je le laisse pendant un certain temps (quelques heures), alors quand je reviens et lance le jeu, il recommence comme s'il ne tournait jamais. Le téléphone n'a été utilisé pour rien entre-temps, bien que la synchronisation soit activée.

Ma question est double: comment puis-je obtenir plus d'informations sur les applications tuées quand et pourquoi, et comment puis-je le configurer pour permettre à cette application de continuer à fonctionner? Je n'en ai pas besoin pour faire quoi que ce soit en arrière-plan, je veux juste qu'il soit toujours là quand je reviens.

Je connais le concept de la suppression de la mémoire d'Android car il est nécessaire et n'a pas besoin d'un tueur de tâches, mais je veux qu'il ne tue PAS cette tâche à moins que je ne la quitte vraiment.

Jason Viers
la source
Je suppose que vous n'avez pas accès au code réel?
Nanne
C'est exact, ce sont des applications de source fermée achetées sur l'App Store.
Jason Viers

Réponses:

2

Je suis sûr que ce n'est pas une option dans la conception par défaut d'Android. Je n'ai jamais personnellement vu une application pour de telles choses parce que la plupart des gens souhaitent que les programmes s'arrêtent pour maintenir la vitesse du téléphone. C'est le système Android qui ferme les programmes inutilisés. Le créateur de l'application devrait concevoir un service pour le faire fonctionner en arrière-plan ou possible comme un calcul ou un son toujours actif afin que le système pense que le programme faisait quelque chose. Cela mangerait votre batterie.

Nicolas
la source
Alors que vos première et troisième phrases sont absolument correctes, les autres ne le sont pas.
Michael
2

Suggestion: utilisez Tasker pour désactiver le délai d’écran de votre application. Cela peut l' empêcher de passer en arrière-plan.

excité
la source
Je vais jeter un oeil et l'essayer, merci! Je noterai tout succès ou échec.
Jason Viers
Je peux confirmer que la modification du délai d'expiration de l'écran dans Tasker n'empêchera pas l'application de se faire tuer. Merci pour la suggestion, cependant.
Jason Viers
1
Attendez, cela n'empêchera-t-il pas l'écran de s'éteindre? Gaspillant ainsi la batterie?
Michael
2

À la première partie de votre question;

comment puis-je obtenir plus d'informations sur les applications supprimées quand et pourquoi?

Le SDK Android a un résumé rapide sur la mémoire Android http://developer.android.com/guide/topics/fundamentals.html

Par défaut, chaque application s'exécute dans son propre processus Linux. Android démarre le processus lorsque l'un des composants de l'application doit être exécuté, puis arrête le processus lorsqu'il n'est plus nécessaire ou lorsque le système doit récupérer de la mémoire pour d'autres applications.

Si efficacement Android peut être résumé comme tuant des programmes lorsqu'il détermine que vous ne l'utilisez pas (j'ai cliqué sur Quitter dans l'application), ou lorsqu'il manque de ressources. Par exemple, si vous avez 512 Mo de RAM et 10 gratuits et que vous lancez une application qui en a besoin de 12, il essaiera de déterminer l'application la moins utilisée dont il pourra récupérer 12.

Cela a tendance à bien fonctionner (du moins d'après mon expérience). Vous pourrez peut-être rentrer chez vous après avoir joué et faire quelques choses, mais à la troisième chose, cela expulsera le jeu. Gardez à l'esprit la façon dont les jeux gourmands en ressources en particulier sont, donc il est probable que cela tuera cette application plus tôt que tard.

Maintenant, la raison pour laquelle il disparaît après le temps, c'est que vous avez probablement des processus de synchronisation qui tentent de démarrer et de rivaliser pour les ressources. Les pages de mémoire des applications ont été très rarement consultées à ce stade, donc c'est un jeu équitable pour toute récupération de mémoire que le système d'exploitation juge nécessaire.

À votre deuxième question;

comment puis-je le configurer pour permettre à cette application de continuer à fonctionner?

Je n'utilise pas de tueur de tâches, mais je suis à peu près sûr que les bons (il semble qu'ATK soit le leader https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) ont une exception liste. Il pourrait être possible de mettre en liste blanche le jeu que vous voulez et de mettre sur liste noire les autres processus.

Je ne suis pas non plus familier avec ce jeu, donc je ne sais pas quelles capacités de sauvegarde automatique et telles ont. J'espère que j'ai été de l'aide.

krondor
la source
1

Comment obtenir plus d'informations sur les applications tuées et pourquoi?

Vous pouvez connecter votre téléphone à adb ; puis activez logcat ; enregistrer la sortie dans un fichier.
Dans le fichier journal, vous aurez des tonnes d'informations; en recherchant le nom de votre application; vous pouvez savoir quand il est tué.

Que pouvez-vous faire pour l'empêcher d'être arrêté par le système Android?
Je ne sais pas; j'espère que la réponse de rAndy fonctionnera.
Pourtant; Je contacterais le développeur et lui dirais le problème, car il / elle devrait avoir le temps le plus facile pour le résoudre

bbaja42
la source
J'étais sur le point de mentionner la solution logcat. Je veux juste ajouter que vous avez aussi chercher le ActivityManager (c'est un "tueur de tâches" androïde interne). Vous ne pouvez pas empêcher Android de tuer l'application. L'idée Android est que si un processus d'application est complètement tué, l'application devrait être en mesure de restaurer son état précédent. Les développeurs d'applications doivent donc s'assurer que vous ne démarrez pas le jeu depuis le début.
Flow