Gibt es eine Möglichkeit, den Aktivitätsstapel während eines Debug- oder normalen Laufs zu visualisieren?Aktivitäten Stapel
Antwort
Sie können nützliche Informationen mit dem Aktivitätenmanager erhalten.
Dies zeigt Ihnen die obere, untere und die Größe des Stapels, und die Beschreibung kann nützlich Sie müssen die laufenden Aufgaben durchsuchen, um die aktuelle Aktivität zu finden.
RunningTaskInfo task = manager.getRunningTasks(10).get(0);
task.baseActivity();
task.numActivities();
task.topActivity();
task.description();
Dies hat eine pkgLst-Methode, die hilfreich sein kann.
Nicht so nützlich oder einfach wie Sie gehofft hatten, aber es könnte helfen.
Aktivität stellt die getCallingActivity() -Methode bereit, die Sie zu onPause und onResume hinzufügen können, wie zuvor vorgeschlagen.
Es gibt auch if (isChild()) getParent();
für eingebettete Aktivitäten.
Nicht, dass ich mir dessen bewusst bin. Denn innerhalb Ihrer eigenen Anwendung können Sie dies selbst verfolgen, indem Sie sich in onResume()
auf Ihre eigene Stack-Datenstruktur schieben und sich in onPause()
von diesem Stack entfernen.
Es gibt keine direkte Möglichkeit, die ich denke, aber eine Möglichkeit besteht darin, alle Callbacks wie create/pause/resume/destroy/etc anzumelden und die Aufrufe zu sehen (zB: Log.d()).
Auf dem Emulator oder in einem verwurzelten Telefon Sie den dumpsys Shell-Befehl
adb shell dumpsys activity
, die gibt die vorhandenen Aufgaben verwenden können. Hier ein kleiner Ausschnitt
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}
Sie können sogar die Absicht erkennen, die die Aktivität gestartet
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 }
Um nur die Aufgaben zu extrahieren, verwende ich grep
adb shell dumpsys activity | grep "Running activities" -A 10
Quelle: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
- 1. Wie lösche ich alle Aktivitäten vom Stapel?
- 2. Beenden Sie einige Aktivitäten vom Stapel
- 3. Clear Stack-Aktivitäten von bestimmten Aktivitäten mit eventBus
- 4. Schließen mehrerer Android-Aktivitäten gleichzeitig
- 5. Wie man Benutzer zum Login-Bildschirm kickt Aktivität durch alle anderen App-Aktivitäten im Stapel?
- 6. Stapel nicht leer aber leerer Stapel Ausnahmefehler
- 7. Stapel in Assembly vs Stapel in c?
- 8. So löschen Sie Stapel als Stapel?
- 9. Wie spezifischen Aktivitäten nicht alle Aktivitäten
- 10. Clearing Aktivität Stapel funktioniert nicht
- 11. Unausgeglichener Stapel!
- 12. Wenn ich neue Aktivitäten über Intents erstellt habe, sind die vorherigen Aktivitäten später noch da?
- 13. Mehrere Aktivitäten: intent und sharedpreferences funktionieren nicht zwischen allen Aktivitäten
- 14. Speichern Stapel in Arraylist
- 15. C#: Oracle.DataAccess Stapel lesen
- 16. Stapel von Elementen
- 17. TypeError: "Stapel" ist schreibgeschützt
- 18. Hakyll bauen mit Stapel
- 19. PInvoke Unwuchten der Stapel
- 20. Thread-sicherer C++ Stapel
- 21. Grundlegende Verwendung Stapel
- 22. DEoptim Stapel Ungleichgewicht Probleme
- 23. Voll Stapel FirstChanceException
- 24. Stapel verschieben veraltete Ordner
- 25. Abfrage im Stapel?
- 26. Was ist "Stapel Thrash"?
- 27. Durch den Stapel gehen
- 28. Stapel Linked Implementierung Import
- 29. versucht Form mit Stapel()
- 30. Etikett im Stapel Ansicht
Ich weiß, dass es eine alte Frage ist, aber es hat mir geholfen, außer dass ich diese Berechtigung zu AndroidManifest hinzufügen musste: –
@MarioLenci GET_TASKS ist in API 21 veraltet https://developer.android.com/reference/android/Manifest.permission.html#GET_TASKS –