Come controllare la corrente di esecuzione delle applicazioni in Android?

Voglio controllare la corrente di esecuzione di applicazioni android a livello di programmazione, in modo simile a come si mostra 6 applicazioni se si premere e tenere premuto il CASA pulsante.

In genere mi interessa il nome dell’applicazione.

InformationsquelleAutor UMAR | 2010-07-19

 

3 Replies
  1. 50

    È possibile ottenere il nome attuale pacchetto utilizzando

    ActivityManager am = (ActivityManager) mContext
                    .getSystemService(Activity.ACTIVITY_SERVICE);
            String packageName = am.getRunningTasks(1).get(0).topActivity
                    .getPackageName();

    È possibile utilizzare questo pacchetto nome di applicazione attiva

    • Risposta impressionante. Ero alla ricerca di questo per sempre! Questo dà la attività che l’utente sta facendo (programma sono attualmente in). Grande!
    • Richiede l’autorizzazione: android.il permesso.GET_TASKS
    • salvato la mia giornata..!! grazie !
    • Il getRunningTasks metodo è stato troncato nelle ultime API per Android Lollipop. Avete qualche suggerimento su un modo alternativo per fare questo?
    • l’unica soluzione in un nonrooted dispositivo è quello di sviluppare un’accessibilità del servizio (guardare qui e qui), che deve essere esplicitamente abilitata dall’utente del dispositivo.
    • BTW, su Android 5 è anche possibile ottenere l’elenco di dimensione 0 come risultato di getRunningTasks, in modo da ottenere(0), si pone la “IndexOutOfBoundsException: Voci di indice 0, la dimensione è 0”. Questa informazione proviene da Google Play ANR strumento di reporting per un’applicazione pubblicata.
    • Per curiosità, come si può Fleksy keyboard fare questo senza la necessità di un servizio di accessibilità per essere abilitati?

  2. 14

    Si può controllare il processName di ogni elemento della lista per vedere se è il processo che si sta cercando. È possibile utilizzare questo codice

    boolean isNamedProcessRunning(String processName){
     if (processName == null) 
      return false;
    
     ActivityManager manager = 
        (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
     List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
     for (RunningAppProcessInfo process : processes)
     {
        if (processName.equals(process.processName))
        {
            return true;
        }
     }
     return false;
    }
  3. 11

    Premuto A lungo il tasto HOME viene visualizzato un elenco di recenti (non necessariamente l’esecuzione di compiti assegnati.

    ActivityManager è che cosa avete bisogno. Guarda getRunningAppProcesses o getRunningTasks.

    È possibile visualizzare queste informazioni (e molto più) eseguendo dumpsys activity tramite “adb shell”.

      Running processes (most recent first):
        App  #11: adj=fore /F 43fe7c20 233:com.android.browser/10004 (top-activity)
        App  #10: adj=bak  /B 43dcec80 190:android.process.media/10009 (bg-empty)
        App  # 9: adj=vis  /F 43f495c8 107:com.android.inputmethod.latin/10014 (service)
                  com.android.inputmethod.latin.LatinIME<=ProcessRecord{43dbe0e8 59:system/1000}
        PERS # 8: adj=sys  /F 43dbe0e8 59:system/1000 (fixed)
        PERS # 7: adj=core /F 43f534c0 111:com.android.phone/1001 (fixed)
        App  # 6: adj=bak+1/B 43ea1f58 148:android.process.acore/10006 (bg-empty)
        App  # 5: adj=home /B 43f601c0 114:com.android.launcher/10000 (home)
        App  # 4: adj=bak+2/B 43f85128 133:com.android.settings/1000 (bg-empty)
        App  # 3: adj=bak+3/B 43eacae0 223:com.android.music/10029 (bg-empty)
        App  # 2: adj=bak+4/B 43dfc500 206:com.android.mms/10028 (bg-empty)
        App  # 1: adj=bak+5/B 43f8fcd0 166:com.android.alarmclock/10025 (bg-empty)
        App  # 0: adj=bak+6/B 43fcbe50 182:com.android.email/10008 (bg-empty)
    
      PID mappings:
        PID #59: ProcessRecord{43dbe0e8 59:system/1000}
        PID #107: ProcessRecord{43f495c8 107:com.android.inputmethod.latin/10014}
        PID #111: ProcessRecord{43f534c0 111:com.android.phone/1001}
        PID #114: ProcessRecord{43f601c0 114:com.android.launcher/10000}
        PID #133: ProcessRecord{43f85128 133:com.android.settings/1000}
        PID #148: ProcessRecord{43ea1f58 148:android.process.acore/10006}
        PID #166: ProcessRecord{43f8fcd0 166:com.android.alarmclock/10025}
        PID #182: ProcessRecord{43fcbe50 182:com.android.email/10008}
        PID #190: ProcessRecord{43dcec80 190:android.process.media/10009}
        PID #206: ProcessRecord{43dfc500 206:com.android.mms/10028}
        PID #223: ProcessRecord{43eacae0 223:com.android.music/10029}
        PID #233: ProcessRecord{43fe7c20 233:com.android.browser/10004}
    • sto parlando di pro grammaticalmente.

Lascia un commento