回答編集履歴
9
修正
test
CHANGED
@@ -54,6 +54,6 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
schedule メソッドが終わった後は、 20 ミリ秒毎に(このアクティビティで起きている他のことに関係無く)
|
57
|
+
schedule メソッドが終わった後は、 20 ミリ秒毎に(このアクティビティで起きている他のことに関係無く) UIスレッド上で ```changePos();``` が実行されます。
|
58
58
|
|
59
59
|
ここで既に start_flg は関係ありません。一度だけスケジューリングすれば良いのですから。
|
8
タスク・・・スレッド
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
さらに、```handler.post(~);``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラス(のインスタンス)の定義であり、それは ```timer.schedule( ~ , 0, 20);``` という記述により timer オブジェクトの schedule メソッド第一引数です。
|
44
44
|
|
45
|
-
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別の
|
45
|
+
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別のスレッドにスケジューリングするものです。
|
46
46
|
|
47
47
|
|
48
48
|
|
7
修正
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new Runnable() {~}``` というクラス(のインスタンス)の定義であり、それは ```handler.post(~);``` という記述により handler オブジェクトのpost メソッドの第一引数です。
|
28
28
|
|
29
|
-
この post メソッドは引数のオブジェクトの run メソッドをメッセージキューにスケジューリングするように要求するものです。
|
29
|
+
この post メソッドは引数のオブジェクトの run メソッドの実行をメッセージキューにスケジューリングするように要求するものです。
|
30
30
|
|
31
31
|
|
32
32
|
|
6
handler コンストラクの件 追加
test
CHANGED
@@ -34,6 +34,12 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
+
handler は ```new Handler();``` として生成されていますので、メッセージキューは UI スレッドのものとなります。
|
38
|
+
|
39
|
+
(なお、引数無しのコンストラクタは非推奨となっていまして、正確には ```new Handler(Looper.getMainLooper());``` と書かないと、予期せぬバグが発生する可能性があるようです。)
|
40
|
+
|
41
|
+
|
42
|
+
|
37
43
|
さらに、```handler.post(~);``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラス(のインスタンス)の定義であり、それは ```timer.schedule( ~ , 0, 20);``` という記述により timer オブジェクトの schedule メソッド第一引数です。
|
38
44
|
|
39
45
|
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別のタスクにスケジューリングするものです。
|
5
いろいろ修正
test
CHANGED
@@ -22,13 +22,25 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
この書き方に慣れていらっしゃらないのかもしれませんが、```changePos();``` が書かれているのは
|
25
|
+
この書き方に慣れていらっしゃらないのかもしれませんが、```changePos();``` が書かれているのは
|
26
|
+
|
27
|
+
```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new Runnable() {~}``` というクラス(のインスタンス)の定義であり、それは ```handler.post(~);``` という記述により handler オブジェクトのpost メソッドの第一引数です。
|
28
|
+
|
29
|
+
この post メソッドは引数のオブジェクトの run メソッドをメッセージキューにスケジューリングするように要求するものです。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
[https://developer.android.com/reference/android/os/Handler?hl=ja#post(java.lang.Runnable)](https://developer.android.com/reference/android/os/Handler?hl=ja#post(java.lang.Runnable))
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
さらに、```handler.post(~);``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラス(のインスタンス)の定義であり、それは ```timer.schedule( ~ , 0, 20);``` という記述により timer オブジェクトの schedule メソッド第一引数です。
|
26
38
|
|
27
39
|
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別のタスクにスケジューリングするものです。
|
28
40
|
|
29
41
|
|
30
42
|
|
31
|
-
[https://do
|
43
|
+
[https://developer.android.com/reference/java/util/Timer?hl=ja#schedule(java.util.TimerTask,%20long,%20long)](https://developer.android.com/reference/java/util/Timer?hl=ja#schedule(java.util.TimerTask,%20long,%20long))
|
32
44
|
|
33
45
|
|
34
46
|
|
4
リンク修正
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
[https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long-](
|
31
|
+
[https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long-](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long-)
|
32
32
|
|
33
33
|
|
34
34
|
|
3
リンク追加
test
CHANGED
@@ -26,6 +26,12 @@
|
|
26
26
|
|
27
27
|
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別のタスクにスケジューリングするものです。
|
28
28
|
|
29
|
+
|
30
|
+
|
31
|
+
[https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long-]( https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long- )
|
32
|
+
|
33
|
+
|
34
|
+
|
29
35
|
スケジューリングする"だけ"ですので、この時点では実行されません。
|
30
36
|
|
31
37
|
|
2
ミリ秒
test
CHANGED
@@ -24,12 +24,12 @@
|
|
24
24
|
|
25
25
|
この書き方に慣れていらっしゃらないのかもしれませんが、```changePos();``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラス(のインスタンス)の定義であり、それは ```timer.schedule( ~ , 0, 20);``` という記述により timer オブジェクトの schedule メソッド第一引数です。
|
26
26
|
|
27
|
-
この schedule メソッドは[第二引数]秒
|
27
|
+
この schedule メソッドは[第二引数]ミリ秒後から、[第三引数]ミリ秒毎に、第一引数の run メソッドを呼び出すように別のタスクにスケジューリングするものです。
|
28
28
|
|
29
29
|
スケジューリングする"だけ"ですので、この時点では実行されません。
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
schedule メソッドが終わった後は、 20 秒毎に(このアクティビティで起きている他のことに関係無く) run が実行され、```changePos();``` が実行されます。
|
33
|
+
schedule メソッドが終わった後は、 20 ミリ秒毎に(このアクティビティで起きている他のことに関係無く) run が実行され、```changePos();``` が実行されます。
|
34
34
|
|
35
35
|
ここで既に start_flg は関係ありません。一度だけスケジューリングすれば良いのですから。
|
1
表現修正
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
この書き方に慣れていらっしゃらないのかもしれませんが、```changePos();``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラスの
|
25
|
+
この書き方に慣れていらっしゃらないのかもしれませんが、```changePos();``` が書かれているのは ```public void run() {~}``` というメソッドの中であり、そのメソッドは ```new TimerTask() {~}``` というクラス(のインスタンス)の定義であり、それは ```timer.schedule( ~ , 0, 20);``` という記述により timer オブジェクトの schedule メソッド第一引数です。
|
26
26
|
|
27
27
|
この schedule メソッドは[第二引数]秒数後から、[第三引数]秒毎に、第一引数の run メソッドを呼び出すように別のタスクにスケジューリングするものです。
|
28
28
|
|