5 votes

Comment empêcher les applications de fonctionner en arrière-plan ?

Duplicata possible :
Comment puis-je empêcher l'exécution d'applications et de services ?

Il existe déjà un question similaire à celle-ci, mais la mienne a une portée plus étroite et n'est pas abordée dans l'autre question :

Prenons le cas d'une application qui répond aux critères suivants :

  1. Prenons un gestionnaire de fichiers à titre d'exemple, mais il pourrait s'agir d'une autre application tout aussi facilement. L'application spécifique n'est pas importante pour cette question.
  2. Cette application n'a aucun besoin légitime de fonctionner en arrière-plan. Je n'ai besoin de gérer les fichiers que lorsque j'utilise activement l'application. (Au cas où mon exemple spécifique s'avérerait avoir un besoin, supposons pour les besoins de la discussion qu'il n'en ait pas réellement besoin).
  3. Le fait qu'il fonctionne en arrière-plan est confirmé par une moniteur système .
  4. Même si je pense qu'il n'a aucun besoin légitime de fonctionner en arrière-plan et que je ne souhaite pas qu'il le fasse, je Ne le fais pas. voulez le désinstaller.

Puis-je empêcher une telle application de fonctionner en arrière-plan ?

Application pratique

Pour illustrer la nécessité de cette question spécifique, et la raison pour laquelle je ne nomme pas d'applications spécifiques, considérez ce que j'avais à l'esprit lorsque j'ai rédigé cette question :

Je voudrais passer en revue mes applications et décider de celles que je veux exécuter en tant que services. Certaines doivent être exécutées sans restrictions. D'autres ne doivent jamais être exécutées. D'autres ne doivent être exécutées que lorsque certaines conditions sont remplies. En utilisant les informations d'une réponse à cette question, je pourrais mettre cela en œuvre - peut-être par un script personnalisé, peut-être en utilisant Tasker, ou peut-être en utilisant une autre approche. Essayer de gérer cela via les paramètres de chaque application individuelle serait pratiquement impossible.

Bien sûr, si ce que je demande dans cette question n'est pas possible, alors cette application n'est pas viable.

Notes basées sur les commentaires et les réponses

  • La raison pour laquelle je veux faire cela n'est pas pertinente. C'est peut-être pour économiser la batterie. Peut-être que c'est une autre raison. Cette question porte sur comment pas pourquoi . Un avertissement indiquant qu'une solution particulière peut avoir des effets secondaires négatifs est utile s'il est présenté en même temps que cette solution. Dire "C'est impossible" est légitime si c'est vrai. Dire "Ne le faites pas" n'est pas utile.
  • Il ne s'agit pas d'un doublon de la question dont j'ai fait le lien dans mon premier paragraphe. Cette question concernait la sauvegarde de la mémoire. Celle-ci ne l'est pas. Celle-là disait, en gros, "N'essayez pas". Ce n'est pas une réponse valable à cette question.
  • Les applications spécifiques n'ont pas d'importance, c'est pourquoi je suis resté vague. J'ai donné un indice quant à un exemple spécifique que j'avais en tête, mais je cherche une réponse générale ici.
  • Une solution doit également empêcher le redémarrage automatique d'une application, sinon elle n'est pas vraiment une solution.
  • Un certain nombre de personnes ont déclaré qu'il s'agissait d'un doublon. Je vais essayer d'expliquer plus clairement pourquoi ce n'est pas le cas :
    1. Cette question porte sur la manière d'empêcher une application de fonctionner en arrière-plan, notamment en l'empêchant de redémarrer si elle est tuée.
    2. Les réponses obtenues jusqu'à présent se répartissent en quelques catégories générales :
      1. Vous ne devriez pas essayer, parce que c'est inutile. Je ne conteste pas ce point pour le moment, mais "Vous ne devriez pas essayer" est très différent de "Vous ne pouvez pas". Logiquement, cela répond à une question différente, à savoir "Devrais-je essayer de tuer les applications que je ne veux pas exécuter ?".
      2. Utilisez la méthode X pour tuer l'application. Malheureusement, lorsque j'ai essayé cette méthode, elle n'a pas empêché l'application de redémarrer, comme d'autres l'avaient prédit. Donc, ce n'est pas vraiment une réponse.
      3. Contactez le développeur, c'est un bug. C'est la plus utile des solutions proposées, mais ma question recherchait une solution générique.
    3. Les autres questions dont on a dit que cette question était un double couvrent le même sujet que celui de mon point précédent. Ainsi, ma question spécifique a pas a été abordée, malgré de nombreuses affirmations contraires. Il semble toutefois que la réponse soit un simple "Vous ne pouvez pas".
    4. Il y a une question connexe sur meta. Sur La réponse de Jeff Atwood Il dit notamment : "Il suffit généralement de faire un lien vers l'autre question et d'expliquer pourquoi elle ne répond pas à vos besoins". L'ensemble du fil de discussion est en rapport avec cette question. Je l'ai fait depuis le début, et j'ai fourni des détails supplémentaires dans les éditions suivantes.

5voto

Flow Points 18254

Tl;dr

Ce n'est pas grave si l'application en arrière-plan n'est qu'une activité. Les activités qui ne font que consommer de la mémoire ne sont généralement pas en mesure d'exécuter des calculs en arrière-plan. Elles n'utilisent donc ni le processeur ni la batterie. Mais si l'application en arrière-plan exécute un service :

Contactez le développeur

Contactez le développeur ! L'un des plus grands démons livrés avec Android sont les services qui fonctionnent en arrière-plan sans raison ou lorsqu'un simple contrôle d'intervalle avec le gestionnaire d'alarme d'Android serait suffisant. Nous devons les tuer tous par le feu et non en les ignorant. Tout ce qui n'implique pas un correctif de la part du développeur n'est qu'un sale piratage qui, par expérience, entraînera d'autres effets secondaires négatifs.

Activités qui s'exécutent en arrière-plan

Les applications Android pures et leurs activités restent généralement en mémoire pendant un certain temps après avoir été mises hors de vue. Mais à un moment donné, elles peuvent être supprimées par l'ActivityManager d'Android s'il existe une pression mémoire permanente. C'est le comportement souhaité, nous (les utilisateurs) le voulons ainsi et cela fonctionne bien dans les versions récentes d'Android. Il n'y a donc rien d'anormal si vous voyez votre gestionnaire de fichiers traîner dans la mémoire.

Services qui fonctionnent en arrière-plan

Mais S'il s'agit d'un service que vous voyez tourner sans cesse sans raison apparente (et sans possibilité de le désactiver dans les paramètres des applications), vous devriez contact contact du contact du développement . Dans 99% des cas, il n'y a aucune raison de gaspiller votre précieuse mémoire en faisant cela. Android fournit avec les intents et le AlarmManager déjà mentionné suffisamment de facilités pour éviter les services qui tournent longtemps. Parfois, les développeurs répondent par "mais Google Maps le fait aussi" . Je soutiens que ce n'est jamais une excuse pour montrer les autres du doigt, et que cela ne constitue pas une raison valable pour faire fonctionner un service d'arrière-plan.

2voto

pzkpfw Points 2270

Puis-je empêcher une telle application de fonctionner en arrière-plan ?

Vous refusez d'accepter les réponses que vous obtenez parce que vous pensez qu'elles ne correspondent pas, mais elles correspondent. Votre question est de savoir comment arrêter automatiquement les applications au lieu de les laisser fonctionner en arrière-plan. La réponse que vous obtenez est que dans la plupart des cas, cela n'est pas nécessaire et contourne complètement la façon dont Android a été créé pour gérer les applications en arrière-plan.

Il existe de nombreuses applications permettant de supprimer les applications en arrière-plan, vous pouvez également les faire glisser ou utiliser des commandes courtes comme "appuyer longuement sur retour" dans certaines roms pour arrêter le processus. Cependant, il est très rare que l'utilisateur doive agir de la sorte ; une application qui se comporte mal doit être signalée avant tout, au lieu d'être contournée.

Si une application n'a "aucun besoin légitime de fonctionner en arrière-plan", mais qu'elle utilise quand même des ressources système (vérifiez que c'est bien le cas), alors cette application est mal conçue. Il ne s'agit pas d'un défaut du système d'exploitation Android.

Cela dit, il existe de nombreuses façons de fermer les applications manuellement. Le faire automatiquement n'a aucun sens, la plupart des applications se comportent bien.

0voto

Steve Obbayi Points 1499

使用方法 Llama Une application qui peut automatiser beaucoup de choses, y compris tuer une application lorsque vous passez à une autre application. Il est nécessaire d'avoir une racine pour tuer les applications.

Créer un nouveau Event . Ajoutez la condition appelée Active App et choisissez le statut App stopped or in background . Choisissez l'application sur laquelle vous voulez vous concentrer.

Ensuite, ajoutez un Action . Sélectionnez Kill Application (root privileges) puis sélectionnez à nouveau votre application.

Maintenant, à chaque fois que tu quittes l'application, Llama va la tuer.

Notez que l'application peut avoir d'autres façons de démarrer, par exemple au démarrage, à la réception d'un texte ou tout autre moyen. Intent qu'il traite. Pour l'empêcher de manipuler ces Intents utiliser l'application Permissions refusées Vous pouvez aussi utiliser une application personnalisée comme CyanogenMod, qui intègre cette fonction. Ces applications peuvent révoquer les autorisations de n'importe quelle application (là encore, la racine est requise).

Edit : Il semble que la version gratuite de Permissions Denied ne soit plus disponible. Je peux toujours accéder à la page google play (parce que je l'ai installé), mais il n'est plus disponible pour les nouveaux utilisateurs. Le site version payante est toujours là, cependant.

0voto

user1457668 Points 11

Si vous êtes sous Ice Cream Sandwich ou Jellybean, vous pouvez aller dans les paramètres, cliquer sur Applications et fermer manuellement l'application en passant par les applications en cours. Vous pouvez également cliquer sur le bouton des applications récentes et les faire glisser hors de l'écran. Cependant, cette méthode ne permet pas de supprimer tous les processus d'arrière-plan.

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