Intereting Posts
Не удается запустить приложение при настройке Crashlytics – NoClassDefFoundError Android SQLiteException: не удалось изменить локаль для db в 'en_US' Что такое липкая трансляция? Комплект Eclipse ADT зависает, когда телефон подключен Отправка уведомления из службы на Android Android Spinner – Как выбрать список по умолчанию для ни одного Внутреннее хранилище Android при обновлении приложения Несколько прядильщиков и onItemSelected Как сделать активность, которая появляется на полуэкранном экране? Как запустить Google Play в режиме «Отправить отзыв» на Android? Как я могу заставить Слушать Игровые Службы автоматически не войти в систему при запуске? Требуется андроид.support.v4.app.fragment PathPattern для соответствия расширению файла не работает, если существует какой-либо период в другом месте имени файла? Как обращаться с панелью действий и кнопкой меню? Не удается найти файл класса для java.lang.Object

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

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

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