1

特定のメソッドが現在実行されていることを確認する方法を知りたいのですが、現在実行されている場合は、別の関数を実行したくありません。

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
  }
}

ブールフラグが機能していません。静的ブールフラグは必要ありません。モバイルデバイスの向きが変わったときに別の関数を呼び出していますが、4つの向きのいずれかで、関数が現在実行されているかどうかを確認する必要がありました。

4

2 に答える 2

0

このリンクを確認してください

現在実行中のメソッドの名前を取得する

また、A の実行中に初期化され、A の実行が終了すると null にリセットされるフラグを設定することもできます。

于 2013-04-29T05:20:09.850 に答える
0

これを試すことができます

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();
    }
}
于 2013-04-29T05:26:10.147 に答える