2017-10-09 3 views
-4

Je construis une application qui devrait être capable de fermer d'autres applications Android. Dans ce cas, j'utilise Google Maps. J'ai accordé la permission dans le manifeste XML Android à killBackgroundProcesses, mais le code suivant ne ferme pas l'application "Google Maps". Mon application appelle killApp() chaque seconde pour s'assurer que Google Maps est fermé. Une idée de ce que je fais mal ici?killBackgroundProcesses ne fonctionne pas, d'autres suggestions?

public void KillApp() 
    { 
     Context context = getContext(); 
     String maps = "com.google.android.apps.maps"; 
     ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 
     activityManager.killBackgroundProcesses(maps); 
    } 

Répondre

1

Vous ne pouvez supprimer que vos propres applications, par ex. ceux qui s'exécutent dans le même processus ou avec le même userID. Vous ne pouvez pas tuer les autres, à moins que l'appareil ne soit rooté. Personne ne peut tuer le processus sauf Android OS lui-même.

La plupart du tueur de tâches dans Android Market ne tuez pas l'application qu'ils redémarrent juste le processus

en utilisant

public void restartPackage (String packageName) 

lorsque cette méthode est appelée par votre activité, le système d'exploitation immédiatement appelé

SavedInstanceState et sauvegardez l'état de l'activité que vous voulez tuer.

Maintenant, ce processus est

retiré de la mémoire et OS sauvé state.Now lorsque l'utilisateur suivant l'heure de début cette activité, il

commencera d'où il a été tué ou autrement dit redémarrée. Vous pouvez vérifier à partir de n'importe quel gestionnaire de tâches qu'ils ne détruisent pas le processus car personne ne peut le faire. Cette méthode

fonctionne également dans ICS.

pour la méthode ci-dessus, vous pouvez regarder ici. Pour autant que je sache, killBackgroundProcesses (String packageName) est pour API 8 et plus.