2016-03-05 7 views
3

Я хочу получить все задачи, которые выполняются в android.I нашел getRunningTasks в ActivityManager, но из android-5.0 getRunningTasks может не дать все задачи (в моем случае это дает домашний экран и мое приложение).Как получить все задачи, которые выполняются в настоящее время

Кроме того, возможно ли найти задачу, с которой пользователь взаимодействует в настоящее время?

Любая помощь была бы принята с благодарностью.

Спасибо.

Edit: Я использую следующий фрагмент code.But это дает мне только один процесс (это мое приложение) .Even если я открыть другие приложения, это не показывая them.I бегу это на одном Plus2.

@Override 
    protected void onHandleIntent(Intent intent) { 
     new Timer().scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 
       getRunningApps(); 
      } 
     }, 0, 1000);//put here time 1000 milliseconds=1 second 
    } 

    public void getRunningApps() { 
     final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     final List<ActivityManager.RunningAppProcessInfo> recentTasks = activityManager.getRunningAppProcesses(); 

     for (int i = 0; i < recentTasks.size(); i++) 
     { 
      Log.d("Executed app", "Application executed : " +recentTasks.get(i).pkgList[0]+ "\t\t ID: "+recentTasks.get(i).pid+""); 
     } 
    } 

ответ

2

Используйте getRunningAppProcesses, который вернет список RunningAppProcessInfo объектов, которые предоставят вам несколько данных о каждом запущенном приложении. Одной из частей информации, которую вы можете получить о приложении, является ее importance, который может иметь значение IMPORTANCE_FOREGROUND, что указывает на то, что этот процесс является активным в настоящее время приложением!

Сопутствующая документация:

getRunningAppProcesses

RunningAppProcessInfo

IMPORTANCE_FOREGROUND

Если это помогло, не стесняйтесь нажимать эту стрелку слева :)

+1

Фрагмент кода будет приятным ... –

0

Если вы не являетесь владельцем этой задачи, Android не даст вам информацию.

+0

Но если вы видите приложение voodoo, они отображают свой виджет только в определенных приложениях. Так что я думал, что это возможно. Но если есть какая-то работа для такой проблемы, пожалуйста, предложите мне способ. – Viking93

-1

Я считаю, что getRecentTasks и getRunningTask устарели от API 21. Я не уверен, чего вы пытаетесь достичь, возможно, вы должны попробовать getRunningAppProcess. которые дают аналогичный результат.

+0

Это проверенное решение? –

-1

Использование этой code Его работы для меня. Не забывайте использовать ListView в вашем файле Xml.