C'è un modo per rendere visibile lo stack di attività, in un momento durante il debug o la normale esecuzione?stack di attività
risposta
È possibile ottenere alcune informazioni utili con il gestore attività.
ActivityManager manager = (ActivityManager)getApplication().getSystemService(Activity.ACTIVITY_SERVICE);
Questo ti mostrerà la parte superiore, inferiore e dimensione dello stack, e la descrizione può essere utile. Dovrai cercare le attività in esecuzione per trovare l'attività corrente.
RunningTaskInfo task = manager.getRunningTasks(10).get(0);
task.baseActivity();
task.numActivities();
task.topActivity();
task.description();
Questo ha un metodo pkgLst che può essere utile.
RunningAppProcessInfo app = manager.getRunningAppProcesses().get(0);
app.pkgList();
Non utile o semplice come si speravano, ma potrebbe aiutare.
L'attività fornisce il metodo getCallingActivity() che è possibile aggiungere ai registri onPause e onResume come suggerito in precedenza.
C'è anche if (isChild()) getParent();
per attività incorporate.
Non che io sappia. Per quanto riguarda la tua applicazione, puoi tenerne traccia da solo spingendoti sulla tua struttura di dati dello stack in onResume()
e uscirne fuori dallo stack in onPause()
.
Non esiste un modo diretto, penso, ma un modo è di mettere i registri in tutte le richiamate come lik su create/pause/resume/destroy/etc e vedere le chiamate (Es: Log.d()).
sull'emulatore o in un telefono radicata è possibile utilizzare il dumpsys comando di shell
adb shell dumpsys activity
che emette i compiti esistenti. Ecco un piccolo frammento
Running activities (most recent first):
TaskRecord{407d8a30 #6 A com.actionbarsherlock.sample.demos}
Run #2: HistoryRecord{40792ec8 com.actionbarsherlock.sample.demos/.ActionItems}
Run #1: HistoryRecord{40735008 com.actionbarsherlock.sample.demos/.SampleList}
TaskRecord{406de0b8 #2 A com.android.launcher}
Run #0: HistoryRecord{405802c8 com.android.launcher/com.android.launcher2.Launcher}
si può anche vedere l'intento che ha iniziato l'attività
TaskRecord{407d8a30 #6 A com.actionbarsherlock.sample.demos}
clearOnBackground=false numActivities=2 rootWasReset=true
affinity=com.actionbarsherlock.sample.demos
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.actionbarsherlock.sample.demos/.SampleList}
realActivity=com.actionbarsherlock.sample.demos/.SampleList
lastActiveTime=1492068 (inactive for 2s)
* Hist #2: HistoryRecord{40792ec8 com.actionbarsherlock.sample.demos/.ActionItems}
packageName=com.actionbarsherlock.sample.demos processName=com.actionbarsherlock.sample.demos
launchedFromUid=10040 app=ProcessRecord{40650b68 1840:com.actionbarsherlock.sample.demos/10040}
Intent { cmp=com.actionbarsherlock.sample.demos/.ActionItems }
Per estrarre solo le attività, io uso grep
adb shell dumpsys activity | grep "Running activities" -A 10
Fonte: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
- 1. Inserimento di Android nello stack di attività
- 2. Visualizzazione dello stack di attività dell'attività
- 3. Intent.FLAG_ACTIVITY_CLEAR_TOP non elimina lo stack di attività
- 4. Cancella attività Stack e inizia nuova attività in Android
- 5. Stack attività e attività: qual è la differenza tra entrambi.
- 6. Problemi relativi alle dimensioni dello stack di attività Android?
- 7. Come ritrovare le attività di stack in un'applicazione Android?
- 8. Chiamate del browser e follia dello stack di attività Android
- 9. Avvia l'attività principale se lo stack di attività è vuoto
- 10. Come ottenere un elenco dello stack cronologia attività?
- 11. Termina qualsiasi attività precedente nello stack dall'attività corrente?
- 12. Come richiamare lo stack per Attività con più Frammenti?
- 13. Esegui un'attività particolare come attività root nello stack
- 14. Corretta traccia stack da Asp.Net Web Async Chiamate asincrone/attività
- 15. Come si eliminano tutte le attività dallo stack?
- 16. Come visualizzare lo stack delle attività nel debug?
- 17. Come cancellare lo stack di attività al di sotto di un'attività
- 18. Stack stack di tutte le discussioni attive
- 19. Ripristina stack di app Android da sfondo
- 20. Posso forzare il pulsante Indietro di Android per fare due passi indietro nello stack Attività?
- 21. Differenza tra "stack di chiamate" e "stack di thread"
- 22. Android si apre la pila di attività
- 23. Come tag attività
- 24. Stack di distribuzione Node.js
- 25. Uso di stack immutabile
- 26. Errore di traccia stack
- 27. Errore di "stack overflow"
- 28. Stack di segnali
- 29. Android attività di incidente (DeadObjectException)
- 30. Lettura dello stack stack per iOS Webkit
So che è una vecchia qustion, ma mi ha aiutato, tranne che ho bisogno di aggiungere questa autorizzazione ad AndroidManifest: –
@MarioLenci GET_TASKS è obsoleto in API 21 https://developer.android.com/reference/android/Manifest.permission.html#GET_TASKS –