回答編集履歴

3

whileを抜ける条件を追加。

2017/12/14 06:14

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -96,6 +96,8 @@
96
96
 
97
97
  private Object sync = new Object(); // スレッドセーフのための同期オブジェクト
98
98
 
99
+ private boolean loop = true;
100
+
99
101
 
100
102
 
101
103
  @Override
@@ -118,7 +120,7 @@
118
120
 
119
121
  protected String doInBackground(Void... voids) {
120
122
 
121
- while (true) {
123
+ while (loop) {
122
124
 
123
125
 
124
126
 
@@ -216,6 +218,16 @@
216
218
 
217
219
  }
218
220
 
221
+ // Socket通信ループを終了させる条件
222
+
223
+ if(value > 5) {
224
+
225
+ loop = false;
226
+
227
+ }
228
+
229
+
230
+
219
231
  }
220
232
 
221
233
  }

2

closeをtry catch

2017/12/14 06:14

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -154,13 +154,21 @@
154
154
 
155
155
  if(reader != null) {
156
156
 
157
+ try {
158
+
157
- reader.close();
159
+ reader.close();
160
+
161
+ } catch(Exception e) {}
158
162
 
159
163
  }
160
164
 
161
165
  if(socket != null) {
162
166
 
167
+ try {
168
+
163
- socket.close();
169
+ socket.close();
170
+
171
+ } catch(Exception e) {}
164
172
 
165
173
  }
166
174
 

1

try catch追記

2017/12/13 08:02

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -118,13 +118,21 @@
118
118
 
119
119
  protected String doInBackground(Void... voids) {
120
120
 
121
- while (true) {
121
+ while (true) {
122
+
123
+
124
+
122
-
125
+ Socket socket = null;
126
+
127
+ BufferedReader reader = null;
128
+
129
+ try {
130
+
123
- Socket socket = new Socket("アドレス", 4000);
131
+ socket = new Socket("アドレス", 4000);
124
-
125
-
126
-
132
+
133
+
134
+
127
- BufferedReader reader = new BufferedReader(
135
+ reader = new BufferedReader(
128
136
 
129
137
  new InputStreamReader(socket.getInputStream()));
130
138
 
@@ -138,14 +146,28 @@
138
146
 
139
147
  }
140
148
 
141
-
149
+ } catch(Exception e) {
150
+
142
-
151
+ e.printStackTrace();
152
+
153
+ } finally {
154
+
155
+ if(reader != null) {
156
+
143
- reader.close();
157
+ reader.close();
158
+
144
-
159
+ }
160
+
161
+ if(socket != null) {
162
+
145
- socket.close();
163
+ socket.close();
164
+
165
+ }
146
166
 
147
167
  }
148
168
 
169
+ }
170
+
149
171
  return null;
150
172
 
151
173
  }