获取正在执行的当前方法的名称

时间:2011-09-21 06:04:27

标签: java android thread-safety

我基本上做的是一个有很多活动的应用程序。我有几个Android手机的朋友,我给他们的应用程序进行测试。然而,它有时会进入无限循环并且由于缺乏编程经验而无法在那些特定时刻转储logcat而导致我无法理解的奇怪行为。

所以我需要做的是创建一个静态的永远可见的窗口,可能是弹出窗口,它显示了现在该程序的方法。

所以我的问题是,这是实现此功能的最佳方式,以及如何检索App所处的当前方法(它有多个线程)。

4 个答案:

答案 0 :(得分:10)

Thread.currentThread().getStackTrace()[1].getMethodName()

答案 1 :(得分:7)

你可以试试这个:

public String getCurrentMethod(){
    try{
        throw new Exception("");
    }catch(Exception e){
        return e.getStackTrace()[0].toString();
    }
    return ""; // This never happens
}

它将返回如下内容:
 ClassName.methodName():123

答案 2 :(得分:6)

如果搜索SO,有很多答案。这是一个简单的方法

String name = new Object(){}.getClass().getEnclosingMethod().getName();

你应该参考这篇文章。 Getting the name of the current executing method

答案 3 :(得分:2)

在我的设备上 - Thread.currentThread().getStackTrace()[2].getMethodName()

(不是[1]而是[2])