Существует ли способ визуализировать стопку действия в некоторый момент во время отладки или нормального выполнения?
Вы можете получить полезную информацию с помощью диспетчера действий.
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 ();
для встроенных действий.
Я думаю, прямого пути нет, но есть способ поместить журналы во все обратные вызовы, например, при создании / приостановке / возобновлении / уничтожении / и т. Д. И просмотреть вызовы (например, Log.d ()).
Насколько я знаю, нет. В своем собственном приложении вы можете отследить это самостоятельно, заталкивая себя в свою собственную структуру данных стека в onResume()
и выталкивая себя из этого стека в onPause()
.