私はHandler handler = new Handler()
を持っていて、それに対してhandler.postDelayed(xxx, xxx)
の遅延タスクを実行すると、それはpostDelayed()
が呼ばれたかどうかをチェックすることが可能ですか?ハンドラにアクティブなタスクがあるかどうかを確認するには?
29
A
答えて
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.
9
Handlerは、 "what"フィールド== 0のメッセージを取得するので、理論上はhasMessages(0)
と呼ぶことができますが、保留中のRunnableを与えているかどうかを確認することはできません。例えば、r0とr1 r0が保留中かどうか。
関連する問題
- 1. アクティブなドキュメントがテキストドキュメントであるかどうかを確認するには?
- 2. デスクトップクライアントでアクティブなSkypeコールがあるかどうかを確認する方法
- 3. Twilio.Deviceハンドラが既に存在するかどうかを確認する方法
- 4. 3gがアクティブであるかどうかを確認する方法
- 5. 現在のアプリケーションがアクティブになっているかどうかを確認する(フォーカスがある)
- 6. TinyMCEがWordPressでアクティブかどうかを確認する方法
- 7. タブがアクティブかどうかを確認するFirefox API
- 8. フォームがvb.netでアクティブであるかどうかを確認します
- 9. ポップアップメニューが非アクティブになっているかどうかを確認する/ポップアップメニューが表示されているかどうかを確認する
- 10. Angularjs - ディレクティブがアクティブであるかどうかを/ domで確認する方法はありますか?
- 11. ポイントがMatplotlibサブプロットにあるかどうかを確認する
- 12. ポイントがバウンディングボックス内にあるかどうかを確認する
- 13. 親divにスクロールバーがあるかどうかを確認する
- 14. exeがデスクトップにあるかどうかを確認する#
- 15. テーブルに重複があるかどうかを確認する
- 16. サウンドファイルにエコーがあるかどうかを確認する
- 17. デバイス上にアプリケーションがあるかどうかを確認する
- 18. データベースにメールがあるかどうかを確認する
- 19. DataGridViewにデータソースがあるかどうかを確認する
- 20. m3u8にストリームがあるかどうかを確認する#
- 21. セットに競合があるかどうかを確認する
- 22. テキストフィールドにフォーカスがあるかどうかを確認する
- 23. コントローラにモデルがあるかどうかを確認する
- 24. Google Apps Scriptアクティブなセルに保護があるかどうかを確認します
- 25. pgプールがアクティブ/有効かどうかを確認するにはどうすればよいですか?
- 26. Nodejs:Couchbase DBにどのようなキーがあるかを確認
- 27. 認証されたユーザーがRESTレスポンスのハンドラであるかどうかを確認する方法
- 28. どのAzureアプリケーションサービス(ウェブサイト)スロットが「アクティブ」であるかを確認する方法は?
- 29. Android APIがコールがアクティブであるかオンホールドであるかを確認する
- 30. System.Data.SqlClient.SqlTransactionにアクティブなトランザクションがあるかどうかを確認するにはどうすればよいですか?
hasMessages()は常に自分のコードでfalseを返します。これは動作確認されていますか? – pmont
はい実際には、handler.sendEmptyMessage(1);これは、ハンドラに空のメッセージをセットするので、if(handler.hasMessages(1))を呼び出すとtrueを返します。 removeMessages(1)を使用してメッセージを削除した場合、falseが返されます。 – Triode
hasMessages(1)はsendEmptyMessage(1)の発行直後にfalseを返します。あなたはアプリでこのコードを使ったことがありますか? – pmont