回答編集履歴

1

Threadの実装の仕方について一例として

2020/10/13 14:33

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -3,3 +3,101 @@
3
3
 
4
4
 
5
5
  また、やはりAndroidアプリケーション開発の縛りとして、UIを操作するスレッド(メインとなるスレッド)でネットワーク通信をすることもできません。`Thread`などを用いてネットワーク通信するための別スレッドで処理する必要があります。なお、Andoroidアプリのプログラミングで別スレッド処理の方法を調べると`AsyncTask`というクラスを用いる方法が多数ヒットすると思いますが、このクラスはAPIレベル30で非推奨となったため、別の手段を用いるべきです。
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ > 別スレッドで処理するThreadのコード自体はどこに記載すればよいのでしょうか?
14
+
15
+
16
+
17
+ 設計次第ではありますが、LineNotifyクラスの中に記述すればいいのではないでしょうか。
18
+
19
+
20
+
21
+ 一例として
22
+
23
+
24
+
25
+ ```java
26
+
27
+ class LineNotify {
28
+
29
+ private static final String token = "****ここにアクセストークンを入れる****";
30
+
31
+
32
+
33
+ public void notify(String message) {
34
+
35
+ Comm t = new Comm(message);
36
+
37
+ t.start();
38
+
39
+ }
40
+
41
+
42
+
43
+ static class Comm extends Thread {
44
+
45
+ private String message;
46
+
47
+
48
+
49
+ Comm(String message) {
50
+
51
+ this.message = message;
52
+
53
+ }
54
+
55
+
56
+
57
+ @Override
58
+
59
+ public void run() {
60
+
61
+ // 現状のNotify()メソッドにあるネットワーク通信の処理をここに記述
62
+
63
+ }
64
+
65
+ }
66
+
67
+
68
+
69
+ (以下略)
70
+
71
+
72
+
73
+ }
74
+
75
+ ```
76
+
77
+
78
+
79
+ 呼び出すMainActivity.javaの側では
80
+
81
+
82
+
83
+ ```java
84
+
85
+ button.setOnClickListener(new View.OnClickListener() {
86
+
87
+ @Override
88
+
89
+ public void onClick(View v) {
90
+
91
+ classln.notify("lineテスト");
92
+
93
+ classln.notify("Test signal");
94
+
95
+ }
96
+
97
+ });
98
+
99
+ ```
100
+
101
+
102
+
103
+ のようにnotify()の引数に送りたい文字列をセットすればいけるのではないかと。