Se você deseja rastrear apenas o encadeamento atual (em vez de todos os encadeamentos no sistema, como a sugestão de Ram), faça:
Thread.currentThread (). getStackTrace ()
Para encontrar o chamador, faça:
private String getCallingMethodName() {
StackTraceElement callingFrame = Thread.currentThread().getStackTrace()[4];
return callingFrame.getMethodName();
}
E chame esse método de dentro do método que precisa saber quem é o responsável pela chamada. No entanto, uma palavra de aviso: o índice do quadro de chamada na lista pode variar de acordo com a JVM! Tudo depende de quantas camadas de chamadas existem no getStackTrace antes de você atingir o ponto em que o rastreamento é gerado. Uma solução mais robusta seria obter o rastreamento e iterar sobre ele, procurando o quadro para getCallingMethodName e, em seguida, dê dois passos adiante para encontrar o verdadeiro chamador.