14 votes

Existe-t-il un moyen de forcer une application à rester exécutée en arrière-plan quoi qu'il arrive ?

Sur Ice Cream Sandwich (ICS), le système d'exploitation classe les applications par catégories et chaque catégorie a son propre seuil que le système d'exploitation utilise pour déterminer quelle application doit être fermée en premier lorsqu'il n'y a plus de mémoire.

Est-ce que l'un d'entre vous a été ennuyé par le fait que, par exemple, vous avez ouvert un minuteur en arrière-plan pour mesurer le temps écoulé de quelque chose, puis vous avez ouvert d'autres applications et êtes revenu à votre minuteur pour voir qu'il avait été réinitialisé ou fermé ? Je veux dire, sérieusement, c'est vraiment atrocement ennuyeux.

Existe-t-il un moyen de forcer une application à continuer à fonctionner en arrière-plan, même lorsque le système d'exploitation n'a plus de mémoire ?

8voto

Torque Points 206

La réponse acceptée s'est avérée incorrecte ou dépassée. Le module "App Settings" de l'application Xposed vous permet de spécifier, pour chaque application, comment empêcher les applications d'être tuées ou libérées :

http://repo.xposed.info/module/de.robv.Android.xposed.installer

http://repo.xposed.info/module/de.robv.Android.xposed.mods.appsettings

Il convient bien entendu de faire preuve de prudence lorsque l'on joue avec des applications qui modifient un comportement de niveau aussi bas.

5voto

Chris Roberts Points 7543

La réponse est simple : Android utilise toujours la priorité OOM (Out-Of-Memory) pour libérer la mémoire inutilisée. Vous pouvez modifier les priorités des applications (au moins jusqu'au redémarrage) avec certains gestionnaires de tâches, mais même dans ce cas, si la mémoire est faible, les applications en arrière-plan commencent à être tuées.

Imaginez le scénario suivant : vous avez téléchargé une application mal codée qui s'exécute au démarrage, provoque un débordement de la mémoire tampon et monopolise toute votre mémoire. Normalement, cette application est tuée, mais si elle est configurée pour rester ouverte, elle bloque votre téléphone jusqu'au redémarrage, puis recommence, et recommence encore, etc.

Certains minuteurs utilisent des services hautement prioritaires pour éviter ce problème, mais si vous lancez suffisamment d'applications très performantes et gourmandes en ressources pendant que le minuteur est en arrière-plan, il finira par être tué.

1voto

Erik Points 3359

Non. Cependant, deux méthodes pour atténuer le problème me viennent à l'esprit, mais toutes deux ne peuvent être mises en œuvre que par le développeur : La première consiste à afficher une notification, Android accordant aux applications qui le font une priorité plus élevée qu'aux autres. La seconde consiste à sauvegarder l'heure de démarrage de sorte que lorsque la minuterie sera redémarrée, elle ne sera pas réinitialisée.

0voto

Becky Mannie Points 1

1ère méthode :--Si vous créez un Sticky Thread dans le programme, oui vous pouvez forcer votre programme à rester en cours d'exécution. Cependant, n'oubliez pas que l'utilisateur peut arrêter les applications en cours d'exécution en arrière-plan dans le mode de paramétrage avancé. Cependant, si vous écrivez un thread collant de manière à ce qu'il démarre à chaque fois qu'un événement se produit, alors cela peut être réalisé.

2ème méthode : Si l'utilisateur n'a pas de racine Android et que vous souhaitez exécuter une application en arrière-plan. utiliser le script SL4 en arrière plan de l'application. Utilisez un script qui fera les vérifications et les programmes en arrière-plan et écrivez l'interface pour montrer quelque chose d'autre.

Par exemple : dans la plupart des moteurs de jeu, cette fonction est intégrée. Ils se connectent aux serveurs même si l'utilisateur a désactivé l'application. La raison pour laquelle le moteur crée plusieurs scripts dans le téléphone qui sont vérifiés automatiquement à chaque événement particulier et ce TRIGGER est utilisé pour exécuter votre application continuellement en arrière-plan ou en avant-plan.

***Sorry for the TYPO's spellchecker not available. J'espère que vous obtiendrez ce que vous vouliez.

-1voto

DivideByHero Points 371

Il existe parfois une option pour serrure l'application. Cela permet d'éviter mise à mort o arrêt de cette application dans le téléphone.

L'option de verrouillage n'est pas disponible dans le système d'exploitation lui-même, mais il faut utiliser des applications tierces comme GO Task Manager etc.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X