Можно ли закрыть приложения программно, которые работают в фоновом режиме в Android?

Я хочу, чтобы остановить или закрыть приложения, которые работают в фоновом режиме в Android. Является ли это возможным? Если так, как этого добиться. Ссылка любые ссылки будут оценены.

Заранее спасибо..

1 ответ

Решение

Ты можешь использовать Process.killProcess(int pid) убить процессы, которые имеют одинаковый UID с вашим приложением. Ты можешь использовать ActivityManager.killBackgroundProcesses(String packageName),with KILL_BACKGROUND_PROCESSES разрешение в вашем манифесте (для API >= 8) или ActivityManager.restartPackage (String packageName)(для API < 8) убить указанный процесс, кроме процесса forground.

Поэтому, если вы хотите уничтожить все остальные процессы, когда ваша программа является приоритетным процессом, вы должны использовать ActivityManager.killBackgroundProcesses или же ActivityManager.restartPackage:

List<ApplicationInfo> packages;
    PackageManager pm;
    pm = getPackageManager();
    //get a list of installed apps.
    packages = pm.getInstalledApplications(0);

    ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);

   for (ApplicationInfo packageInfo : packages) {
        if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
        if(packageInfo.packageName.equals("mypackage")) continue;
        mActivityManager.killBackgroundProcesses(packageInfo.packageName);
   }   

В приведенном выше фрагменте кода каждый процесс будет уничтожен, если это не процесс вашего приложения или системный процесс.

Другие вопросы по тегам