30 votes

Que signifie le bouton "Force stop" ?

Quand je vais à Settings > Applications > Manage Applications > Downloaded Je vois une liste de candidatures. Si je sélectionne certaines applications, je vois le bouton "Force stop" actif, mais pour certaines applications, ce bouton est grisé.

Qu'est-ce que cela signifie ? Que se passe-t-il si j'appuie sur ce bouton ?

Ce bouton ne peut pas signifier que l'application est en cours d'exécution, puisque les applications avec ce bouton ne sont pas répertoriées dans la liste des applications de l'UE. Running section.

Puis-je énumérer seulement les applications qui ont le Force stop actif et les désinstaller ?


Version Android : 3.2

19voto

Milner Points 533

Comme je l'ai dit dans mon commentaire à la réponse de Paco, les informations qu'il a données sont en grande partie correctes : La plupart des applications ne se ferment pas complètement si vous les quittez, et aucune application ne devrait se fermer si vous la quittez via le bouton "Home". De plus, certaines applications ont des services d'arrière-plan en cours d'exécution que l'utilisateur ne peut pas quitter.

Dans certaines situations, il est nécessaire d'arrêter une application (y compris ses services d'arrière-plan), par exemple si vous souhaitez désinstaller cette application (ou, dans le cas d'une application système, ses mises à jour). Vous remarquerez que lorsque le bouton "Forcer l'arrêt" est actif, le bouton "Désinstaller" (ou "Supprimer") est grisé -- mais ce dernier est activé lorsque vous avez arrêté l'application via "Forcer l'arrêt". (Si les deux boutons sont grisés, vous pouvez dire qu'il s'agit d'une application système, que vous ne pouvez pas désinstaller).

Par ailleurs, si le bouton "Forcer l'arrêt" est grisé ("atténué" comme vous le dites), cela signifie que l'application n'est pas en cours d'exécution et qu'aucun service n'est en cours d'exécution (à ce moment-là).

1 votes

You will notice this when the "Force Stop" button is active, the "Uninstall" (or "Remove") button is grayed out Pouvez-vous donner un exemple d'application qui a ce comportement ? Je viens de passer en revue certaines de mes applications et j'ai constaté que les boutons "Force Stop" et "Uninstall" sont tous deux activés. Je suis sous Android 4.4.2.

1 votes

Comme ma réponse date déjà de 2 ans, Kitkat n'était pas disponible à l'époque ; ce comportement peut avoir changé ou ne pas concerner toutes les applications. Je ne peux pas tester avec Kitkat (je n'ai pas d'appareil fonctionnant avec), et je ne me souviens pas des paquets avec lesquels j'ai vu cela, désolé.

17voto

Andy Brudtkuhl Points 1714

El derrière le Arrêt forcé bouton est complexe et non documentée. Je vais le reproduire mot à mot, puis le parcourir pièce par pièce.

private void checkForceStop() {
    if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
        // User can't force stop device admin.
        updateForceStopButton(false);
    } else if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
        // If the app isn't explicitly stopped, then always show the
        // force stop button.
        updateForceStopButton(true);
    } else {
        Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
                Uri.fromParts("package", mAppEntry.info.packageName, null));
        intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
        intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
        intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
        getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
                Activity.RESULT_CANCELED, null, null);
    }
}

Le premier if vérifie si une ligne composant du paquet est un administrateur du dispositif (c'est-à-dire, s'il est coché dans la section Administrateurs de dispositifs dans la liste des Sécurité page de la Paramètres app). Si c'est le cas, le bouton est désactivé (en grisé) pour que vous ne puissiez pas arrêter les administrateurs de périphériques.

Ensuite, le else if vérifie si le paquet est déjà arrêté . Ici, "arrêté" ne signifie pas seulement "ne fonctionne pas". D'après ce que je sais, un paquet est dans la section arrêté si vous n'avez jamais exécuté de composant à partir de celui-ci (par exemple en le lançant à partir du menu), ou si vous avez appuyé sur une touche Arrêt forcé (celui-ci ou dans une boîte de dialogue "stopped working") et ne plus exécuter aucun de ses composants. Si le paquet n'a pas a été arrêté, le bouton est activé .

El else Le cas couvre l'éventualité rare qu'une application a a été arrêté et n'est pas un administrateur de dispositif. Dans ce cas, il donne d'autres services du système une chance d'activer le bouton. Par exemple, l'application peut avoir une alarme réglée et en attente, ce qui entraînerait ultérieurement le redémarrage de l'application, même à partir de l'état arrêté. Dans ce cas, le bouton sera activé. Si aucun autre service système n'a de raison d'activer le bouton, celui-ci sera désactivé.

Résumé

El Arrêt forcé Le bouton est activé si le paquet n'est pas un administrateur de périphérique. y soit vous n'avez pas encore arrêté de force cette application, soit vous l'avez arrêtée de force mais un service système pense qu'il va la relancer.

Si l'application est en cours d'exécution (et qu'il ne s'agit pas d'un dispositif d'administration), la fonction Arrêt forcé sera certainement activé, mais le fait que le bouton soit activé ne signifie pas que l'application fonctionne.

1 votes

C'est très bien que vous nous montriez le code qui détermine si le bouton est affiché ou non. Pour un développeur comme moi, c'est la réponse parfaite. Mais en réalité, ce n'est que la moitié de la réponse. Vous ne montrez pas ce qui se passe lorsque vous appuyez sur le bouton.

2voto

OrangeBox Points 1690

Android conserve 4 types d'applications dans sa mémoire. Je ne me souviens pas de toutes mais en cours d'exécution y arrière-plan en cachette sont au nombre de deux...(on peut accéder à l'arrière-plan en cache en cliquant sur le bouton du menu matériel lorsque l'on se trouve dans la fenêtre de l'ordinateur. en cours d'exécution et en sélectionnant l'option qui s'affiche)

Donc, même si on ne le voit pas dans le en cours d'exécution il n'est pas tout à fait mort.

La plupart du temps, il sera dans le arrière-plan en cachette prcesses.

Les tueurs d'applications/tâches drainent en fait plutôt la batterie car après que le tueur ait tué les applications, selon l'algorithme qu'Android suit, elles seront relancées (et les applications prennent plus de mémoire au démarrage que dans l'état idéal), donc cela devient un cycle et draine la batterie.

pour que le bouton de fermeture forcée soit actif sur principalement processus en cours d'exécution et en cache et peut exister sur un très petit nombre d'applications qui résident dans les deux autres types de processus !

sur d'autres applications, c'est grisonnant !

1 votes

Il s'agit de plus de 4 types (voir Comprendre les cycles de vie des applications et des activités Android pour une explication plus détaillée). Mais ces classes n'ont rien à voir avec le bouton "arrêt forcé", du moins pas directement (voir ma réponse un bouton "arrêt forcé" actif signifie simplement que l'application elle-même ou l'un de ses services enregistrés est en cours d'exécution).

-2voto

Paolo Tedesco Points 1549

Ce bouton est actif pour les applications qui sont en cours d'exécution ou qui ont été exécutées depuis le dernier démarrage de votre appareil.

Android ne tue pas totalement les applications lorsque vous en sortez, ce bouton sert à fermer complètement l'application et à la retirer de la pile (applications en cours d'exécution), ce bouton libère également la mémoire utilisée par l'application.

Il n'y a aucun moyen de lister les applications en cours d'exécution, et les applications en arrière-plan ont également ce bouton.

Il existe des applications tueuses gratuites dans le Play Store, pour gérer automatiquement la mémoire de votre appareil.

3 votes

Bien que les informations de base soient correctes, il serait préférable de supprimer la partie concernant les "tueurs automatiques". Il se peut qu'ils aient été nécessaires à un moment donné (avant Android 2.x), mais ils sont absolument contre-productifs et ont surtout un effet négatif sur l'autonomie de la batterie.

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