Sur Ice Cream Sandwich (ICS), le système d'exploitation catégorise votre application et chaque catégorie a son propre seuil dans lequel le système d'exploitation utilise pour déterminer quelle application fermer en premier lorsqu'il manque de mémoire.
Quelqu'un parmi vous a-t-il été ennuyé, disons que vous avez ouvert une minuterie pour fonctionner en arrière-plan pour mesurer le temps écoulé de quelque chose, puis vous avez ouvert quelques autres applications et êtes revenu à votre minuterie juste pour voir qu'il a été réinitialisé ou fermé? Je veux dire, sérieusement, c'est vraiment très ennuyeux.
Existe-t-il un moyen de forcer une application à continuer de fonctionner en arrière-plan, même si le système d'exploitation manque de mémoire?
4.0-ice-cream-sandwich
ram
samsung-galaxy-s-3
supertonsky
la source
la source
Réponses:
La réponse acceptée s'est révélée incorrecte ou obsolète. Le module "Paramètres de l'application" pour l'application Xposed vous permet de spécifier, par application, pour empêcher les applications d'être supprimé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
Un soin responsable doit bien sûr être exercé lorsque vous jouez avec des applications modifiant un tel comportement de bas niveau.
la source
Réponse simple: Non. 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 si la mémoire est faible, les applications en arrière-plan commencent à être tuées.
Pensez à ce scénario: vous avez téléchargé une application mal codée qui s'exécute au démarrage, provoque un débordement de tampon et monopolise toute votre mémoire. Normalement, cette application est tuée, mais si elle est configurée pour rester ouverte, elle brique efficacement votre téléphone jusqu'au redémarrage, puis recommence encore et encore, etc.
Certains temporisateurs utilisent des services avec des priorités élevées pour éviter ce problème, mais si vous lancez suffisamment d'applications hautes performances consommant des ressources alors que le temporisateur est en arrière-plan, il finira par être tué.
la source
Integer.MAX_VALUE
temps. Pourquoi pensez-vous que les choses sont limitées deInteger.MAX_VALUE
toute façon?Non. Cependant, deux méthodes pour résoudre le problème viennent à l'esprit, mais les deux ne peuvent être implémentées que par le développeur: la première consiste à afficher une notification, Android accordera aux applications qui le font une priorité plus élevée que les autres. La seconde consiste à enregistrer l'heure de début afin que lorsque la minuterie soit finalement redémarrée, elle ne sera pas réinitialisée.
la source
onSaveInstanceState
etonRestoreInstanceState
pour sécuriser l'état de l'application, y compris les informations de la minuterie. Pas besoin de s'exécuter en premier plan. Même s'il s'agit d'une alarme, vous pouvez vousAlarmManager
assurer qu'elle est exécutée plus tard. La seule raison pour laquelle le premier plan doit être utilisé est: 1. Vous avez une activité réelle au premier plan, comme jouer de la musique ou montrer une vidéo. 2. Vous souhaitez garder une connexion de données ouverte (par exemple IMAP IDLE (push)).1ère méthode: - Si vous créez Sticky Thread dans le programme, oui, vous pouvez forcer votre programme à courir. Cependant, n'oubliez pas que l'utilisateur en mode de réglage avancé peut arrêter les applications en cours d'exécution en arrière-plan. Cependant, si vous écrivez un fil collant de manière à ce qu'il démarre à tout événement donné, cela peut être réalisé.
2ème méthode: SI l'utilisateur n'est pas rooté et que vous voulez exécuter une application en arrière-plan. utilisez le script SL4 en arrière-plan de l'application. utilisez un script qui vous permettra de vérifier les antécédents et les programmes et d'écrire le front-end pour montrer autre chose.
Par exemple: dans la plupart des moteurs de jeu, c'est intégré. 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 est vérifié de manière aléatoire lors d'événements particuliers et que TRIGGER est utilisé pour exécuter votre application en continu sur l'arrière-plan du premier plan.
*** Désolé pour le TYPO's. Correcteur orthographique non disponible. J'espère que vous atteindrez ce que vous aviez l'intention d'obtenir.
la source
Il existe parfois une option pour verrouiller l'application. Cela empêche de tuer ou d' arrêter cette application dans le téléphone.
L'option de verrouillage n'est pas disponible dans le système d'exploitation lui-même, l'utilisation de certaines applications tierces comme GO Task Manager , etc., peut vous aider.
la source