如果你想直观的知道某个函数是如何被其他函数层层调用的,只需将如下函数findCaller()添加到该函数中,之后就可以通过logcat查看调用过程。
import java.lang.Throwable;
import java.lang.StackTraceElement;
import android.util.Log;
public void findCaller() {
final Throwable mThrowable = new Throwable();
final StackTraceElement[] elements = mThrowable.getStackTrace();
final int len = elements.length;
StackTraceElement item = null;
for (int i = 0; i < len; i++) {
item = elements[i];
Log.i("caller", "Position: " +
item.getClassName() + "." + item.getMethodName()
+ " ---" + item.getLineNumber() + " line");
}
}
本文介绍了一个简单的Java函数findCaller(), 它可以记录并输出当前函数被哪些其他函数调用的过程。通过使用Throwable类获取调用堆栈信息,并利用Log类进行输出。
413

被折叠的 条评论
为什么被折叠?



