如何在Android应用程序中找到后台堆栈活动?

azz*_*its 20 android activity-stack back-stack

我有一个活动的应用程序返回堆栈A - > B - > C - > D - > E.现在在活动E,我想知道我导航的后台堆栈活动.我怎么找到这个?

Raj*_*Dua 6

下面的代码可用于提取后端堆栈中每个任务中的所有任务和顶级活动

ActivityManager m = (ActivityManager) ctx.getSystemService( ctx.ACTIVITY_SERVICE );
List<RunningTaskInfo> runningTaskInfoList =  m.getRunningTasks(10);
Iterator<RunningTaskInfo> itr = runningTaskInfoList.iterator();
while(itr.hasNext()){
    RunningTaskInfo runningTaskInfo = (RunningTaskInfo)itr.next();
    int id = runningTaskInfo.id;
    CharSequence desc= runningTaskInfo.description;
    int numOfActivities = runningTaskInfo.numActivities;
    String topActivity = runningTaskInfo.topActivity.getShortClassName();
}
Run Code Online (Sandbox Code Playgroud)

  • 这与后端堆栈不同 - 后端堆栈可能涉及同一任务中的多个活动.我不认为有办法做OP所要求的. (4认同)
  • 这也需要GET_TASK权限 (2认同)

sur*_*esh 5

您可以使用"adb shell dumpsys activity activities" 命令

供参考http://www.onsandroid.com/2015/01/find-back-stack-activities-in-android.html


Que*_*ERC 0

我不确定我是否理解得很好...您想返回到之前的活动吗?如果是这样,请完成当前活动,您将返回到上一项活动。