2013-04-18 6 views

答えて

14

可能性がチェックするということですpostDelayed()が呼び出されたりされなかったのか?

1つのクイックフィックスでは、メソッド内で一部のboolean変数をtrueに割り当ててから、チェックを実行するだけです。

17

これを達成するための直接的なAPIはありませんが、sendEmptyMessage関数を使用するとこれを回避できます。これが役立つことを願っています。

handler.sendEmptyMessage(some_integer);//Do this when you add the call back. 
if(handler.hasMessages(some_integer)) 
handler.removeMessages(some_integer);//Do this after removing the call back. 
+0

hasMessages()は常に自分のコードでfalseを返します。これは動作確認されていますか? – pmont

+0

はい実際には、handler.sendEmptyMessage(1);これは、ハンドラに空のメッセージをセットするので、if(handler.hasMessages(1))を呼び出すとtrueを返します。 removeMessages(1)を使用してメッセージを削除した場合、falseが返されます。 – Triode

+4

hasMessages(1)はsendEmptyMessage(1)の発行直後にfalseを返します。あなたはアプリでこのコードを使ったことがありますか? – pmont

9

Handlerは、 "what"フィールド== 0のメッセージを取得するので、理論上はhasMessages(0)と呼ぶことができますが、保留中のRunnableを与えているかどうかを確認することはできません。例えば、r0とr1 r0が保留中かどうか。

関連する問題