Zabójca zadań na Androida
Próbuję napisać prostego zabójcę zadań. Wiem, że nie powinienem zabijać zadań w Androidzie, ale chcę spróbować czegoś takiego. Mam następujący kod:
<code>List<RunningAppProcessInfo> procInfo = activityManager.getRunningAppProcesses(); for (int i = 0; i < procInfo.size(); i++) { Log.v("proces " + i,procInfo.get(i).processName + " pid:" + procInfo.get(i).pid + " importance: " + procInfo.get(i).importance + " reason: " + procInfo.get(i).importanceReasonCode); //First I display all processes into the log } for (int i = 0; i < procInfo.size(); i++) { RunningAppProcessInfo process = procInfo.get(i); int importance = process.importance; int pid = process.pid; String name = process.processName; if (name.equals("manager.main")) { //I dont want to kill this application continue; } if (importance == RunningAppProcessInfo.IMPORTANCE_SERVICE) { //From what I have read about importances at android developers, I asume that I can safely kill everithing except for services, am I right? Log.v("manager","task " + name + " pid: " + pid + " has importance: " + importance + " WILL NOT KILL"); continue; } Log.v("manager","task " + name + " pid: " + pid + " has importance: " + importance + " WILL KILL"); android.os.Process.killProcess(procInfo.get(i).pid); } procInfo = activityManager.getRunningAppProcesses(); //I get a new list with running tasks for (int i = 0; i < procInfo.size(); i++) { Log.v("proces after killings" + i,procInfo.get(i).processName + " pid:" + procInfo.get(i).pid + " importance: " + procInfo.get(i).importance + " reason: " + procInfo.get(i).importanceReasonCode); } </code>
Moim problemem jest to, że kiedy wykonuję ten kod, najpierw otrzymuję listę wszystkich zadań, to jest OK. Potem widzę w dzienniku kilka linii:
<code>Sending signal. pid: (processId) SIG: 9 </code>
Zakładam, że to sygnał do śmierci. Ale na końcu mojego kodu, gdy wyświetlam wszystkie działające procesy, lista jest taka sama jak poprzednio, żadne zadanie nie zostało zabite. Jakiś pomysł dlaczego? Dziękuję Ci!