Intereting Posts
Android: универсальный загрузчик изображений Загрузка большого изображения Android – анимация масштабирования с использованием AnimatorSet Как начать обслуживание в андроиде без активности Html phonegap android: цифровая клавиатура имеет следующую, а не кнопку go Как использовать средство Monitor (DDMS) для отладки приложения ListView «возвращается» при прокрутке Как я могу создать новую активность от IntelliJ? Странное мигание на клиенте удаленного управления блокировкой при остановке его от самого клиента Странная проблема с android: ellipsize = "end" Копировать вставить изображение в Android с помощью диспетчера буфера обмена Нарисуйте круг HSV во время выполнения Отобразить диалоговое окно с ошибкой в ​​Службе Google Play не установлено и перенаправить пользователя на него. Текст текста текстового текста Android Панель прогресса Android WebView Получение ArrayIndex из Bounds Исключение при добавлении новых элементов в список при прокрутке

Стек операций

Есть ли способ визуализировать стек активности, в какой-то момент во время отладки или обычного запуска?

Solutions Collecting From Web of "Стек операций"

Вы можете получить полезную информацию у менеджера активности.

ActivityManager manager = (ActivityManager)getApplication().getSystemService( Activity.ACTIVITY_SERVICE ); 

Это покажет вам верх, низ и размер стека, и описание может быть полезно. Вам нужно будет найти текущие задачи, чтобы найти текущую активность.

 RunningTaskInfo task = manager.getRunningTasks( 10 ).get( 0 ); task.baseActivity(); task.numActivities(); task.topActivity(); task.description(); 

У этого есть метод pkgLst, который может быть полезен.

 RunningAppProcessInfo app = manager.getRunningAppProcesses().get( 0 ); app.pkgList(); 

Не так полезно или просто, как вы надеялись, но это может помочь.

Activity предоставляет метод getCallingActivity (), который вы могли бы добавить к журналам в onPause и onResume, как было предложено ранее.

Существует также if ( isChild() ) getParent(); Для встроенных действий.

Не то, чтобы я в курсе. Для вашего собственного приложения вы можете отслеживать это самостоятельно, нажимая себя на свою собственную структуру данных стека в onResume() и выскакивая себя из этого стека в onPause() .

Прямого способа я не думаю, но способ заключается в том, чтобы поместить журналы во все обратные вызовы на create / pause / resume / destroy / etc и посмотреть вызовы (Ex: Log.d ()).

На эмуляторе или в корневом телефоне вы можете использовать команду оболочки dumpsys

 adb shell dumpsys activity 

Который выдает существующие задачи. Вот небольшой фрагмент

 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} 

Вы даже можете увидеть намерение, которое начало деятельность

 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 } 

Чтобы извлечь только Задачи, я использую grep

 adb shell dumpsys activity | grep "Running activities" -A 10 

Источник: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack