2015-03-09 2 views
1

Mon exigence me force à tuer d'autres applications de mon application développée.Android tuer application de fond de notre application par programme

Détails: Mon exigence est de savoir comment tuer par programme toutes les applications exécutant l'arrière-plan à partir d'applications en cours de développement.

Je me réfère à this post mais je ne suis pas capable de comprendre comment implémenter ceci. En fait, je veux développer quelque chose comme ShutApp. Dans ce cas, l'application force la fermeture de l'application autre application en cours d'exécution.

Je suis coincé dans le développement de cette fonctionnalité. Toute suggestion/suggestion serait utile.

Merci d'avance.

EDIT

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> 
<uses-permission android:name="android.permission.WRITE_SETTINGS"/> 
<uses-permission android:name="android.permission.GET_TASKS"/> 
+0

« l'application en cours d'exécution de notre application »? quelle? –

+0

Cela signifie que l'application que je développe en ce moment, je veux tuer d'autres applications en cours d'exécution que de cela. – anddev

+0

duplication possible de [Comment les applications de suppression du Gestionnaire des tâches?] (Http://stackoverflow.com/questions/6303615/how-do-task-managers-kill-apps) –

Répondre

0

Je suis assez sûr que ce n'est pas possible, ce serait une mauvaise pratique pour Android pour permettre des applications pour fermer d'autres applications.

La réponse est dans ce post: Kill another process/application programmatically

S'il vous plaît google votre question avant de demander ici.

+0

Je sais que ce serait une mauvaise pratique, mais j'ai besoin pour le même. Et aussi toute application d'économiseur de batterie suit la même procédure. Je veux juste savoir comment pouvons-nous développer cela. – anddev

+0

Voir ma modification, s'il vous plaît utiliser google pour trouver vos réponses avant de le demander ici. –

+0

Merci pour votre réponse rapide, mais j'ai déjà essayé et cela ne fonctionne pas. S'il vous plaît assurez-vous avant de suggérer la réponse :) – anddev

2

Cela forcera-arrêter toutes les applications, y compris système app

try 
    { 
     Process suProcess = Runtime.getRuntime().exec("su"); 
     DataOutputStream os = new DataOutputStream(suProcess.getOutputStream()); 

     os.writeBytes("adb shell" + "\n"); 
     os.flush(); 

     Context newContext=this; 
     ActivityManager activityManager = (ActivityManager) newContext.getSystemService(Context.ACTIVITY_SERVICE); 
     List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); 
     for(RunningAppProcessInfo appProcess : appProcesses){ 
      if(appProcess.processName.equals("com.yourPackageName")){ 
      } 
      else{ 
       os.writeBytes("am force-stop "+appProcess.processName + "\n"); 
      } 
      } 

     os.flush(); 
     os.close(); 
     suProcess.waitFor(); 

    } 

    catch (IOException ex) 
    { 
     ex.getMessage(); 
     Toast.makeText(getApplicationContext(), ex.getMessage(),Toast.LENGTH_LONG).show(); 
    } 
    catch (SecurityException ex) 
    { 
     Toast.makeText(getApplicationContext(), "Can't get root access2", 
        Toast.LENGTH_LONG).show(); 
    } 
    catch (Exception ex) 
    { 
     Toast.makeText(getApplicationContext(), "Can't get root access3", 
        Toast.LENGTH_LONG).show(); 
    } 
0

Nous ne pouvons pas réellement tuer toutes les applications d'arrière-plan. Cependant, nous pouvons tuer notre propre application à partir de recents en appelant le finishAndRemoveTask() qui est disponible auprès de lollipop.

Une autre solution est que nous pouvons utiliser android:excludeFromRecents l'activité dans le fichier manifeste