出于调试目的,我希望能够在后台堆栈中记录活动,但是我没有看到任何API来执行此操作,也无法在搜索时看到它。有办法吗?
答案 0 :(得分:1)
实际上,我也非常喜欢这个问题。不幸的是没有。让我们想一想为什么?
Java抓住我们的手:
1) Annotations - 与DI的方式。(反射方式),如ButterKnife
2)登录后台的父类。
public class MainActivity extends LogActivity //for ex
3)使用Thread.currentThread().getStackTrace()
,但您应该检查您当前的位置,您现在正在检查的线程和其他日常工作。
答案 1 :(得分:0)
您可以使用以下命令
adb shell dumpsys activity
它将在开始时打印很多东西,包括后堆栈:
Running activities (most recent first):
TaskRecord{45168b4 #2194 A=com.example.myapp U=0 StackId=22 sz=3}
Run #2: ActivityRecord{a05a1af u0 com.example.myapp/com.example.myapp.activity.MyActivity t2194}
Run #1: ActivityRecord{5c017cd u0 com.example.myapp/com.example.myapp.activity.MySecondActivity t2194}
Run #0: ActivityRecord{6fe38b2 u0 com.example.myapp/com.example.myapp.activity.MyThirdActivity t2194}
另一种解决方法是先键入adb shell
,然后按Enter,然后再输入dumpsys activity | grep -i run
。这只会显示后退堆栈,而不会显示其他内容,而是需要两个命令。