2013-08-05 3 views
1

Я пытаюсь убить фоновые запущенные приложения, используя мое приложение, но я не могу убить процесс.Убивать приложения, выполняющиеся в фоновом режиме в android

android.os.Process.killProcess(pid); 
android.os.Process.sendSignal(pid, 
android.os.Process.SIGNAL_KILL); 
manager.killBackgroundProcesses(pid); 

здесь pid - фоновый идентификатор процесса.

+0

Почему? Вы не должны убивать фоновые процессы. – Simon

+0

Какой процесс требует высокой памяти и использования батареи, я хочу закрыть этот тип процесса приложения. –

ответ

2

Каждое приложение для Android имеет свой идентификатор пользователя, идентификатор группы и большую часть времени работает в рамках собственного процесса. Таким образом, ваше приложение, вероятно, не имеет права убивать другой процесс.

Существует, очевидно, дефект дизайна, вы бы лучше сказали, что именно вы хотите сделать.

+0

Я хочу закрыть приложения, которые ранее были открыты и выполняться в фоновом режиме, используя мое приложение. –

+0

Разумным случаем было бы то, что вы * TELL * приложения должны «закрыть», иначе я думаю, что вашему приложению не разрешено принудительно закрыть другое приложение. Конечно, должен быть механизм присутствия в закрытых приложениях для «принятия» таких запросов, что, вероятно, означает, что вы также являетесь автором этих приложений. – zerox

0

Используйте этот killBackgroundProcesses:

try { 
      ActivityManager actvityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
      actvityManager.killBackgroundProcesses(pkgn.toString());// pkgn is a process id ///// 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
0

Вы также должны добавить это в очевидном

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />