活动堆栈

ran*_*vee 12 android

有没有办法在调试或正常运行的某个时刻对活动堆栈进行虚拟化?

dra*_*ard 6

您可以通过活动管理器获取一些有用的信息.

ActivityManager         manager = (ActivityManager)getApplication().getSystemService( Activity.ACTIVITY_SERVICE );
Run Code Online (Sandbox Code Playgroud)

这将显示堆栈的顶部,底部和大小,描述可能很有用.您必须搜索正在运行的任务以查找当前活动.

RunningTaskInfo         task = manager.getRunningTasks( 10 ).get( 0 );
task.baseActivity();
task.numActivities();
task.topActivity();
task.description();
Run Code Online (Sandbox Code Playgroud)

这有一个pkgLst方法可能会有所帮助.

RunningAppProcessInfo   app = manager.getRunningAppProcesses().get( 0 );
app.pkgList();
Run Code Online (Sandbox Code Playgroud)

不像你希望的那样有用或直截了当,但它可能有所帮助.

Activity提供了getCallingActivity()方法,您可以按照之前的建议添加到onPause和onResume中的日志中.

还有if ( isChild() ) getParent();嵌入式活动.