回答編集履歴

2

誤記訂正

2017/04/03 09:42

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- postDelyaedはHandlerがLooperに対して「Xミリ秒後にこのハンドラーを起動してね」という具合に依頼してくれるメソッドです。本コードではハンドラー処理の最後で再びpostDelayedしているので「一定時間間隔で繰り返しハンドラーが起動する」動きになりますが、この動きをすることを感覚的に「スレッドを立ち上げた」と表現されたのだと思います。
13
+ postDelayedはHandlerがLooperに対して「Xミリ秒後にこのハンドラーを起動してね」という具合に依頼してくれるメソッドです。本コードではハンドラー処理の最後で再びpostDelayedしているので「一定時間間隔で繰り返しハンドラーが起動する」動きになりますが、この動きをすることを感覚的に「スレッドを立ち上げた」と表現されたのだと思います。
14
14
 
15
15
 
16
16
 

1

誤字訂正

2017/04/03 09:42

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- さて、アクティビティーが非表示状態になったとき、上の書いようにUIスレッド以外のスレッドを自分で起動したわけではないのでスレッドの停止を考える必要はありません。すべきことは「mHandlerに繰り返し登録している処理を断ち切る」ことです。そのためには以下のようにHandlerのremoveCallbacksを使えばよいと思います。要するに現在起動待機中の処理(Runnable)を登録解除すればそれ以上HandlerからLooperへ処理の起動依頼は起きなくなる(=繰り返し処理は止まる)ということですね。
19
+ さて、アクティビティーが非表示状態になったとき、前述しとおりUIスレッド以外のスレッドを自分で起動していたわけではないのでスレッドの停止を考える必要はありません。すべきことは「mHandlerに繰り返し登録している処理を断ち切る」ことです。そのためには以下のようにHandlerのremoveCallbacksを使えばよいと思います。要するに現在起動待機中の処理(Runnable)を登録解除すればそれ以上HandlerからLooperへ処理の起動依頼は起きなくなる(=繰り返し処理は止まる)ということですね。
20
20
 
21
21
 
22
22