介绍
StackTraceElement[]中保存了一条线程中所有调用的方法。其中每个方法的信息包含在一个StackTraceElement对象中。
获取StackTraceElement中的信息
element.getClassName(); //获取类名
element.getMethodLine(); //获取方法名
element.getMethodName(); //获取方法名
element.getFileName(); //获取包含类的文件名
StackTraceElement[]中的信息
StackTracelElement[]是一个的数组,以下标0为开始,其中在Java比较有用的是第3个,在Android中比较有用的是第4个,因为在Android中多了一个Dalvik的调用,所以实际Java中的第3位向后移动了一个位置,变成第4位。
这个比较有用的StackTraceElement保存了实际调用该方法的方法信息。
//下面方法能够打印一组当前线程的StackTraceElement[]信息:
public static String showAllElementsInfo() {
String print = "";
int count = 0;
//从当前线程中获取所有的StackTraceElement
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement stackTraceElement : stackTraceElements) {
count++;
print += String.format("ClassName:%s " +
"\nMethodName:%s " +
"\nMethodLine:%d " +
"\n当前是第%d个 " +
"\n---------------------------- " +
"\n ",
stackTraceElement.getClassName(),
stackTraceElement.getMethodName(),