アクティビティのすべての要素が画面に表示された後にコードを実行したいので、Looper が作業を終了したかどうかをテストしたいと考えています。Looper の作業が終了した後にイベントをトリガーしたいと考えています。UI のすべての要素が画面に表示された後にコードを実行する別の方法はありますか?
質問する
237 次
2 に答える
1
looper
を呼び出して開始すると、明示的に を呼び出すまで終了Looper.loop()
しませんLooper.quit()
。
を使用Semaphore
してコードを調整できるため、ルーパーが作業を完了するまで待つことができます。
1-Semaphore
クラスでオブジェクトを定義し、0
許可で初期化します。
Semaphore semaphore = new Semaphore(0);
wait
2- を呼び出したい場所で、が利用可能semaphore.acquire()
になるまでブロックしますpermit
3-ルーパー呼び出しを終了するsemaphore.release()
と、セマフォに許可が追加され、他の待機中のコードが引き続き実行されます。
ルーパーsemaphore.acquire()
が呼び出される前に終了した場合は注意してください。すぐに続行され、ブロックされません
使用に関するコード例については、こちらの回答を参照してくださいSemaphore
于 2013-02-11T02:47:58.517 に答える
0
要素の可視性を確認できます。それらが正しい場合は、コードを実行してください....(私が正しく理解したと思います。)
于 2013-02-07T15:08:22.800 に答える