Если вам нужна трассировка только для текущего потока (а не для всех потоков в системе, как рекомендует Рам), выполните:
Thread.currentThread (). getStackTrace ()
Чтобы найти абонента, выполните:
private String getCallingMethodName() {
StackTraceElement callingFrame = Thread.currentThread().getStackTrace()[4];
return callingFrame.getMethodName();
}
И вызовите этот метод из метода, который должен знать, кто его вызывает. Однако, предупреждающее слово: индекс вызывающего кадра в списке может варьироваться в зависимости от JVM! Все зависит от того, сколько уровней вызовов есть в getStackTrace, прежде чем вы достигнете точки, где генерируется трассировка. Более надежным решением было бы получить трассировку и перебрать ее, ища фрейм для getCallingMethodName, а затем сделать еще два шага вверх, чтобы найти истинного абонента.