回答編集履歴
1
リンクの追記と若干の修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
これだけで解決するかはわかりませんが、
|
2
2
|
少なくとも`MyTimerTask#run`メソッド内で`text_ang.setText( S_ang )`を呼び出しているのはマズいです。
|
3
3
|
|
4
|
-
Androidでは、UIスレッド(`Activity#onXXX`メソッドを呼び出しているスレッドのことです
|
4
|
+
Androidでは、UIスレッド(`Activity#onXXX`メソッドを呼び出しているスレッドのことです)以外のスレッドからUIを操作してはならないからです。
|
5
5
|
|
6
6
|
下記リンクの"スレッド"と"ワーカースレッド"という項目に、その説明があります。
|
7
7
|
[http://developer.android.com/intl/ja/guide/components/processes-and-threads.html](http://developer.android.com/intl/ja/guide/components/processes-and-threads.html)
|
@@ -13,6 +13,8 @@
|
|
13
13
|
以下、その他 気になった点を記載させていただきます。
|
14
14
|
## ScheduledExecutorService について
|
15
15
|
抜粋したコードに含まれていないだけかもしれませんが、`ScheduledExecutorService#shutdown`メソッドを呼び出していないように見受けます。
|
16
|
+
[http://developer.android.com/intl/ja/reference/java/util/concurrent/ExecutorService.html#shutdown()](http://developer.android.com/intl/ja/reference/java/util/concurrent/ExecutorService.html#shutdown())
|
17
|
+
[https://docs.oracle.com/javase/jp/6/api/java/util/concurrent/ExecutorService.html#shutdown()](https://docs.oracle.com/javase/jp/6/api/java/util/concurrent/ExecutorService.html#shutdown())
|
16
18
|
|
17
19
|
適切なタイミングでこれを呼び出さないと、アプリが終了した後も「タスクを管理するスレッド」が残り続けてしまいます。
|
18
20
|
|