Showing
2 changed files
with
35 additions
and
21 deletions
| @@ -104,7 +104,7 @@ android { | @@ -104,7 +104,7 @@ android { | ||
| 104 | 104 | ||
| 105 | if (variant.buildType.name.equals('release')) { | 105 | if (variant.buildType.name.equals('release')) { |
| 106 | def fileName = output.outputFile.name.replace(output.outputFile.name, | 106 | def fileName = output.outputFile.name.replace(output.outputFile.name, |
| 107 | - /*variant.productFlavors[0].name*/"方糖" + "-${variant.versionCode}-${releaseTime()}.apk") | 107 | + /*variant.productFlavors[0].name*/"方糖" + "-v${variant.versionCode}-${releaseTime()}.apk") |
| 108 | output.outputFile = new File(output.outputFile.parent, fileName) | 108 | output.outputFile = new File(output.outputFile.parent, fileName) |
| 109 | // release to test folder | 109 | // release to test folder |
| 110 | println fileName | 110 | println fileName |
| @@ -18,7 +18,6 @@ import java.io.InputStream; | @@ -18,7 +18,6 @@ import java.io.InputStream; | ||
| 18 | import java.io.OutputStream; | 18 | import java.io.OutputStream; |
| 19 | import java.lang.ref.WeakReference; | 19 | import java.lang.ref.WeakReference; |
| 20 | import java.net.Socket; | 20 | import java.net.Socket; |
| 21 | -import java.net.UnknownHostException; | ||
| 22 | import java.util.Arrays; | 21 | import java.util.Arrays; |
| 23 | 22 | ||
| 24 | public class SocketService extends Service { | 23 | public class SocketService extends Service { |
| @@ -37,6 +36,7 @@ public class SocketService extends Service { | @@ -37,6 +36,7 @@ public class SocketService extends Service { | ||
| 37 | public static final String HEART_BEAT_STRING = "\\r\\n\\r\\n";//心跳包内容 | 36 | public static final String HEART_BEAT_STRING = "\\r\\n\\r\\n";//心跳包内容 |
| 38 | public String testRoomSn = "000003"; | 37 | public String testRoomSn = "000003"; |
| 39 | private ReadThread mReadThread; | 38 | private ReadThread mReadThread; |
| 39 | + private HeatBeatThread mHeatBeatThread; | ||
| 40 | private Gson gson; | 40 | private Gson gson; |
| 41 | 41 | ||
| 42 | // private LocalBroadcastManager mLocalBroadcastManager; | 42 | // private LocalBroadcastManager mLocalBroadcastManager; |
| @@ -56,6 +56,7 @@ public class SocketService extends Service { | @@ -56,6 +56,7 @@ public class SocketService extends Service { | ||
| 56 | Log.d(TAG, "heart beat error restart"); | 56 | Log.d(TAG, "heart beat error restart"); |
| 57 | mHandler.removeCallbacks(heartBeatRunnable); | 57 | mHandler.removeCallbacks(heartBeatRunnable); |
| 58 | mReadThread.release(); | 58 | mReadThread.release(); |
| 59 | + mHeatBeatThread.release(); | ||
| 59 | releaseLastSocket(mSocket); | 60 | releaseLastSocket(mSocket); |
| 60 | new InitSocketThread().start(); | 61 | new InitSocketThread().start(); |
| 61 | } | 62 | } |
| @@ -79,6 +80,7 @@ public class SocketService extends Service { | @@ -79,6 +80,7 @@ public class SocketService extends Service { | ||
| 79 | super.onCreate(); | 80 | super.onCreate(); |
| 80 | gson = new Gson(); | 81 | gson = new Gson(); |
| 81 | context = this; | 82 | context = this; |
| 83 | + //TODO change the room sn | ||
| 82 | if (!"LETEST".equals(SystemUtils.getPid(context, BuildConfig.MACHINE_TYPE))) { | 84 | if (!"LETEST".equals(SystemUtils.getPid(context, BuildConfig.MACHINE_TYPE))) { |
| 83 | testRoomSn = "000002"; | 85 | testRoomSn = "000002"; |
| 84 | } | 86 | } |
| @@ -109,20 +111,15 @@ public class SocketService extends Service { | @@ -109,20 +111,15 @@ public class SocketService extends Service { | ||
| 109 | return true; | 111 | return true; |
| 110 | } | 112 | } |
| 111 | 113 | ||
| 112 | - private void initSocket() {//初始化Socket | ||
| 113 | - try { | ||
| 114 | - Socket so = new Socket(HOST, PORT); | ||
| 115 | - mSocket = new WeakReference<Socket>(so); | ||
| 116 | - mReadThread = new ReadThread(so); | ||
| 117 | - mReadThread.start(); | 114 | + private void initSocket() throws IOException {//初始化Socket |
| 115 | + Socket so = new Socket(HOST, PORT); | ||
| 116 | + mSocket = new WeakReference<Socket>(so); | ||
| 117 | + mReadThread = new ReadThread(so); | ||
| 118 | + mReadThread.start(); | ||
| 118 | // new Thread(heartBeatRunnable).start(); | 119 | // new Thread(heartBeatRunnable).start(); |
| 119 | // mHandler.post(heartBeatRunnable);//初始化成功后,就准备发送心跳包 | 120 | // mHandler.post(heartBeatRunnable);//初始化成功后,就准备发送心跳包 |
| 120 | - new HeatBeat(so).start();//上面的 one plus 3t NetworkOnMainThreadException!!! | ||
| 121 | - } catch (UnknownHostException e) { | ||
| 122 | - e.printStackTrace(); | ||
| 123 | - } catch (IOException e) { | ||
| 124 | - e.printStackTrace(); | ||
| 125 | - } | 121 | + mHeatBeatThread = new HeatBeatThread(so); |
| 122 | + mHeatBeatThread.start();//上面的 one plus 3t NetworkOnMainThreadException!!! | ||
| 126 | } | 123 | } |
| 127 | 124 | ||
| 128 | private void releaseLastSocket(WeakReference<Socket> mSocket) { | 125 | private void releaseLastSocket(WeakReference<Socket> mSocket) { |
| @@ -144,7 +141,18 @@ public class SocketService extends Service { | @@ -144,7 +141,18 @@ public class SocketService extends Service { | ||
| 144 | @Override | 141 | @Override |
| 145 | public void run() { | 142 | public void run() { |
| 146 | super.run(); | 143 | super.run(); |
| 147 | - initSocket(); | 144 | + try { |
| 145 | + initSocket(); | ||
| 146 | + } catch (IOException e) { | ||
| 147 | + e.printStackTrace(); | ||
| 148 | + Log.d(TAG, "init socket thread error,restart again after 10's"); | ||
| 149 | + try { | ||
| 150 | + Thread.sleep(HEART_BEAT_RATE); | ||
| 151 | + } catch (InterruptedException e1) { | ||
| 152 | + e1.printStackTrace(); | ||
| 153 | + } | ||
| 154 | + this.run(); | ||
| 155 | + } | ||
| 148 | } | 156 | } |
| 149 | } | 157 | } |
| 150 | 158 | ||
| @@ -239,33 +247,39 @@ public class SocketService extends Service { | @@ -239,33 +247,39 @@ public class SocketService extends Service { | ||
| 239 | 247 | ||
| 240 | 248 | ||
| 241 | // Thread to read content from Socket | 249 | // Thread to read content from Socket |
| 242 | - class HeatBeat extends Thread { | 250 | + class HeatBeatThread extends Thread { |
| 243 | private WeakReference<Socket> mWeakSocket; | 251 | private WeakReference<Socket> mWeakSocket; |
| 244 | private boolean isStart = true; | 252 | private boolean isStart = true; |
| 245 | 253 | ||
| 246 | - public HeatBeat(Socket socket) { | 254 | + public HeatBeatThread(Socket socket) { |
| 247 | mWeakSocket = new WeakReference<Socket>(socket); | 255 | mWeakSocket = new WeakReference<Socket>(socket); |
| 248 | } | 256 | } |
| 249 | 257 | ||
| 258 | + public void release() { | ||
| 259 | + isStart = false; | ||
| 260 | + releaseLastSocket(mWeakSocket); | ||
| 261 | + } | ||
| 262 | + | ||
| 250 | @Override | 263 | @Override |
| 251 | public void run() { | 264 | public void run() { |
| 252 | super.run(); | 265 | super.run(); |
| 253 | Socket socket = mWeakSocket.get(); | 266 | Socket socket = mWeakSocket.get(); |
| 254 | if (null != socket) { | 267 | if (null != socket) { |
| 255 | - while (true) { | 268 | + while (isStart) { |
| 256 | if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) { | 269 | if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) { |
| 257 | - Log.d(TAG, "heart beat"); | 270 | + Log.d(TAG, "heart beat:" + Thread.currentThread().getId()); |
| 258 | boolean isSuccess = sendMsg(HEART_BEAT_STRING);//就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket | 271 | boolean isSuccess = sendMsg(HEART_BEAT_STRING);//就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket |
| 259 | if (!isSuccess) { | 272 | if (!isSuccess) { |
| 260 | - Log.d(TAG, "heart beat error restart"); | 273 | + Log.d(TAG, "heart beat error restart:" + Thread.currentThread().getId()); |
| 261 | // mHandler.removeCallbacks(heartBeatRunnable); | 274 | // mHandler.removeCallbacks(heartBeatRunnable); |
| 262 | mReadThread.release(); | 275 | mReadThread.release(); |
| 276 | + mHeatBeatThread.release(); | ||
| 263 | sendRegister = false; | 277 | sendRegister = false; |
| 264 | releaseLastSocket(mSocket); | 278 | releaseLastSocket(mSocket); |
| 265 | new InitSocketThread().start(); | 279 | new InitSocketThread().start(); |
| 266 | } | 280 | } |
| 267 | } else { | 281 | } else { |
| 268 | - Log.d(TAG, "heart beat less than beat rate"); | 282 | + Log.d(TAG, "heart beat less than beat rate:" + Thread.currentThread().getId()); |
| 269 | } | 283 | } |
| 270 | try { | 284 | try { |
| 271 | Thread.sleep(HEART_BEAT_RATE); | 285 | Thread.sleep(HEART_BEAT_RATE); |
Please
register
or
login
to post a comment