Android: приложение Killing (все) переднего плана работает - PullRequest
1 голос
/ 18 июля 2011

Я ищу способ убить переднее приложение Dalvik (активно работающее) из ядра Linux (используя его идентификатор процесса)?

Как мне этого добиться?есть идеи?Видит ли ядро ​​pid работающего приложения?

Как, например, для.Диспетчер процессов / Диспетчер задач в Android достигают этого?

Есть ли у вас какие-либо сведения?

Отредактировано:

Проблема, на которую я смотрю - это способубить приложение, которое «ведет себя не так, как задумано».

Это «другое поведение» всегда исправлено.Думайте об этом как об отправке сообщения на определенный порт.

Как я могу убить приложение, оставаясь вне его и сохраняя разрешение на его уничтожение?Вот почему мне было интересно, если я должен заставить этот модуль сидеть на платформе, если не прямо в ядре.

1 Ответ

3 голосов
/ 19 июля 2011

Это получит все запущенные процессы и уничтожит те с указанным pid:

ArrayList<Integer> pids = new ArrayList<Integer>();
ActivityManager  manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses)
{
    if (pids.contains(process.pid))
    {
        // Ends the app
        manager.restartPackage(process.processName);
    }
}

Для этого вам понадобятся следующие разрешения:

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...