2014-09-08 3 views
4

У меня есть идея сделать Диспетчер задач для android.Can Кто-нибудь скажет мне, как получить все процессы в настоящее время работает в android?Получить информацию обо всех запущенных процессах

+0

Вы не можете. Вы можете получить все запущенные процессы, прочитав вывод 'ps, ', но вы не можете управлять ими, за исключением выполнения других программ, которые уже существуют. – EJP

+0

Возможный дубликат этого вопроса: http://stackoverflow.com/questions/3278895/how-to-check-current-running-applications-in-android – Boopathi

ответ

7

, используя этот код вы можете получить список запущенных процессов: -

ActivityManager actvityManager = (ActivityManager) 
this.getSystemService(ACTIVITY_SERVICE); 
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses(); 

for(RunningAppProcessInfo runningProInfo:procInfos){ 

     Log.d("Running Processes", "()()"+runningProInfo.processName); 
} 

Для получения дополнительной информации вы можете посетить this link.

Чтобы получить имя приложения, основанные на использовании имени пакета PackageManager класс.

final PackageManager pkgmgr = getApplicationContext().getPackageManager(); 
ApplicationInfo appinfo; 
try { 
    appinfo = pkgmgr.getApplicationInfo(this.getPackageName(), 0); 
} catch (final NameNotFoundException e) { 
    appinfo = null; 
} 
final String applicationName = (String) (appinfo != null ? pkgmgr.getApplicationLabel(appinfo) : "(unknown)"); 

Чтобы получить имя приложения на основе PID использования: -

public static String getAppNameByPID(Context context, int pid){ 
    ActivityManager manager 
       = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 

    for(RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()){ 
     if(processInfo.pid == pid){ 
      return processInfo.processName; 
     } 
    } 
    return ""; 
} 

и, наконец,, чтобы проверить, если приложение является системное приложение, или не использовать: -

private boolean isSystemPackage(PackageInfo pkgInfo) { 
     return (pkgInfo.applicationInfo.flags & 
       ApplicationInfo.FLAG_SYSTEM) != 0; 
    } 
+0

любые разрешения, упомянутые в манифесте? –

+0

@zaidiqbal 'android.permission.GET_TASKS' –

+0

Он также возвращает много системных процессов? –