//On Button Show Running
populateTextViewWithRunningProcesses();//On Button Kill
new KillBackgroundProcessesTask().execute();
// Custom method to populate TextView with running processes
protected void populateTextViewWithRunningProcesses(){
textview1.setText("");
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
Toast.makeText(getApplicationContext(),"Running processes : " +
runningProcesses.size(),Toast.LENGTH_SHORT).show();
for(ActivityManager.RunningAppProcessInfo processInfo: runningProcesses ){
textview1.setText(textview1.getText() + processInfo.processName + "
");
}
}
// AsyncTask to kill background processes
private class KillBackgroundProcessesTask extends AsyncTask<Void,Integer,Integer>{
@Override
protected Integer doInBackground(Void...Void){
android.content.pm.PackageManager pm = getPackageManager();
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> list = am.getRunningAppProcesses();
int initialRunningProcessesSize = list.size();
for(ActivityManager.RunningAppProcessInfo process: list){
if(process.pkgList.length == 0) continue;
try{
android.content.pm.PackageInfo packageInfo = pm.getPackageInfo(process.pkgList[0],android.content.pm.PackageManager.GET_ACTIVITIES);
if(!packageInfo.packageName.equals(getApplicationContext().getPackageName())){
am.killBackgroundProcesses(packageInfo.packageName);
}
}catch(android.content.pm.PackageManager.NameNotFoundException e){
e.printStackTrace();
}
}
int currentRunningProcessesSize = am.getRunningAppProcesses().size();
return initialRunningProcessesSize - currentRunningProcessesSize;
}
protected void onPostExecute(Integer result){
Toast.makeText(getApplicationContext(),"Killed : " + result + " processes",Toast.LENGTH_SHORT).show();
populateTextViewWithRunningProcesses();
}
}
AndroidManifest.xml [permission]
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>