2012-07-10 137 views
9

ハンドラのremoveCallbacks(Runnable r)の正確な意味は何ですか?私はそのdocumentationを通過し、単に "メッセージキューにあるRunnable rの未処理の投稿をすべて削除する"と言う。AndroidのハンドラでremoveCallbacks(Runnable r)の意味は?

私のメッセージは、私のメッセージがすでにハンドラで処理されていて、その間にremoveCallbacksと呼んだ場合、半分のメッセージが処理されなくなりますか?または、私がremoveCallbacksと呼んでも、私のハンドラ(私がpost(Runnable r)を呼び出すと)で処理を開始したメッセージは実行されますか?

答えて

8

ランナブルはメッセージキューから出てくるので実行する必要があります。メッセージがすでに処理を開始している場合は、removeCallbacksを呼び出して実行しないでください。既に削除されているはずですので、処理を続行します。

+0

OK ...ありがとうございました.. !!! – AndroDev

+0

こんにちはビルド...もう1つ..もし私が非同期タスクを使用し、onPostExecuteで実行し、asynctask.cancel(true)を呼び出すと、その場合、onPostExecuteもキャンセルされますか? – AndroDev

+0

@AndroDevわかりません。それは別の質問として掲示されるべきです。 –

10

新しいHandlerを作成すると、それを作成しているスレッドのスレッド/メッセージキューにバインドされます。その時点から、メッセージと実行可能ファイルをそのメッセージキューに配信し、メッセージキューから出てくるメッセージと実行可能ファイルを実行します。 removeCallbacksは、まだキューから処理を開始していない実行可能ファイルを単に削除します。

+0

アレックスありがとうございます。 – AndroDev

関連する問題