2

アクティビティのすべての要素が画面に表示された後にコードを実行したいので、Looper が作業を終了したかどうかをテストしたいと考えています。Looper の作業が終了した後にイベントをトリガーしたいと考えています。UI のすべての要素が画面に表示された後にコードを実行する別の方法はありますか?

4

2 に答える 2

1

looperを呼び出して開始すると、明示的に を呼び出すまで終了Looper.loop()しませLooper.quit()

を使用Semaphoreしてコードを調整できるため、ルーパーが作業を完了するまで待つことができます。

1-Semaphoreクラスでオブジェクトを定義し、0許可で初期化します。

Semaphore semaphore = new Semaphore(0);

wait2- を呼び出したい場所で、が利用可能semaphore.acquire()になるまでブロックしますpermit

3-ルーパー呼び出しを終了するsemaphore.release()と、セマフォに許可が追加され、他の待機中のコードが引き続き実行されます。

ルーパーsemaphore.acquire()が呼び出される前に終了した場合は注意してください。すぐに続行され、ブロックされません

使用に関するコード例については、こちらの回答を参照してくださいSemaphore

于 2013-02-11T02:47:58.517 に答える
0

要素の可視性を確認できます。それらが正しい場合は、コードを実行してください....(私が正しく理解したと思います。)

于 2013-02-07T15:08:22.800 に答える