Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查找当前在java中执行的方法?_Java_Android - Fatal编程技术网

如何查找当前在java中执行的方法?

如何查找当前在java中执行的方法?,java,android,Java,Android,我想知道如何找到当前正在运行的特定方法,如果它当前正在运行,我不想执行其他函数 Class myclass extending someclass{ private void method A(){ //somthing here } private void method B(){ //somthing here } private void method C(){ B();//don't want to call B if A is running

我想知道如何找到当前正在运行的特定方法,如果它当前正在运行,我不想执行其他函数

Class myclass extending someclass{
  private void method A(){

  //somthing here
  }

  private void method B(){

  //somthing here
  }

  private void method C(){
   B();//don't want to call B if A is running 

  //somthing here
  }
}
布尔标志不起作用。我不想要静态布尔标志。当移动设备的方向改变时,我调用不同的函数,但在四个方向中的一个方向,我要检查函数当前是否正在运行。

检查此链接

您还可以设置一个标志,该标志在a运行时初始化,在a执行结束时重置为null

AtomicInteger aCount = new AtomicInteger(0);

private void A() {
    aCount.incrementAndGet();
    try {
        //
    } finally {
        aCount.decrementAndGet();
    }
}

private void B() {
}

private void C() {
    if (aCount.intValue() == 0) {
        B();
    }
}

您是否尝试过设置一个标志,该标志在a运行时初始化,在a执行过度时重置为null?您指的是运行吗?你的意思是另一个线程正在运行该方法,还是仅仅是从方法A中调用了方法C?可能是@Amrendra的副本?你可以共享你尝试过的代码吗?你确定不只是想使用同步原语,如锁定、信号量等吗?