Showing
2 changed files
with
35 additions
and
21 deletions
| ... | ... | @@ -104,7 +104,7 @@ android { |
| 104 | 104 | |
| 105 | 105 | if (variant.buildType.name.equals('release')) { |
| 106 | 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 | 108 | output.outputFile = new File(output.outputFile.parent, fileName) |
| 109 | 109 | // release to test folder |
| 110 | 110 | println fileName | ... | ... |
| ... | ... | @@ -18,7 +18,6 @@ import java.io.InputStream; |
| 18 | 18 | import java.io.OutputStream; |
| 19 | 19 | import java.lang.ref.WeakReference; |
| 20 | 20 | import java.net.Socket; |
| 21 | -import java.net.UnknownHostException; | |
| 22 | 21 | import java.util.Arrays; |
| 23 | 22 | |
| 24 | 23 | public class SocketService extends Service { |
| ... | ... | @@ -37,6 +36,7 @@ public class SocketService extends Service { |
| 37 | 36 | public static final String HEART_BEAT_STRING = "\\r\\n\\r\\n";//心跳包内容 |
| 38 | 37 | public String testRoomSn = "000003"; |
| 39 | 38 | private ReadThread mReadThread; |
| 39 | + private HeatBeatThread mHeatBeatThread; | |
| 40 | 40 | private Gson gson; |
| 41 | 41 | |
| 42 | 42 | // private LocalBroadcastManager mLocalBroadcastManager; |
| ... | ... | @@ -56,6 +56,7 @@ public class SocketService extends Service { |
| 56 | 56 | Log.d(TAG, "heart beat error restart"); |
| 57 | 57 | mHandler.removeCallbacks(heartBeatRunnable); |
| 58 | 58 | mReadThread.release(); |
| 59 | + mHeatBeatThread.release(); | |
| 59 | 60 | releaseLastSocket(mSocket); |
| 60 | 61 | new InitSocketThread().start(); |
| 61 | 62 | } |
| ... | ... | @@ -79,6 +80,7 @@ public class SocketService extends Service { |
| 79 | 80 | super.onCreate(); |
| 80 | 81 | gson = new Gson(); |
| 81 | 82 | context = this; |
| 83 | + //TODO change the room sn | |
| 82 | 84 | if (!"LETEST".equals(SystemUtils.getPid(context, BuildConfig.MACHINE_TYPE))) { |
| 83 | 85 | testRoomSn = "000002"; |
| 84 | 86 | } |
| ... | ... | @@ -109,20 +111,15 @@ public class SocketService extends Service { |
| 109 | 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 | 119 | // new Thread(heartBeatRunnable).start(); |
| 119 | 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 | 125 | private void releaseLastSocket(WeakReference<Socket> mSocket) { |
| ... | ... | @@ -144,7 +141,18 @@ public class SocketService extends Service { |
| 144 | 141 | @Override |
| 145 | 142 | public void run() { |
| 146 | 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 | 247 | |
| 240 | 248 | |
| 241 | 249 | // Thread to read content from Socket |
| 242 | - class HeatBeat extends Thread { | |
| 250 | + class HeatBeatThread extends Thread { | |
| 243 | 251 | private WeakReference<Socket> mWeakSocket; |
| 244 | 252 | private boolean isStart = true; |
| 245 | 253 | |
| 246 | - public HeatBeat(Socket socket) { | |
| 254 | + public HeatBeatThread(Socket socket) { | |
| 247 | 255 | mWeakSocket = new WeakReference<Socket>(socket); |
| 248 | 256 | } |
| 249 | 257 | |
| 258 | + public void release() { | |
| 259 | + isStart = false; | |
| 260 | + releaseLastSocket(mWeakSocket); | |
| 261 | + } | |
| 262 | + | |
| 250 | 263 | @Override |
| 251 | 264 | public void run() { |
| 252 | 265 | super.run(); |
| 253 | 266 | Socket socket = mWeakSocket.get(); |
| 254 | 267 | if (null != socket) { |
| 255 | - while (true) { | |
| 268 | + while (isStart) { | |
| 256 | 269 | if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) { |
| 257 | - Log.d(TAG, "heart beat"); | |
| 270 | + Log.d(TAG, "heart beat:" + Thread.currentThread().getId()); | |
| 258 | 271 | boolean isSuccess = sendMsg(HEART_BEAT_STRING);//就发送一个HEART_BEAT_STRING过去 如果发送失败,就重新初始化一个socket |
| 259 | 272 | if (!isSuccess) { |
| 260 | - Log.d(TAG, "heart beat error restart"); | |
| 273 | + Log.d(TAG, "heart beat error restart:" + Thread.currentThread().getId()); | |
| 261 | 274 | // mHandler.removeCallbacks(heartBeatRunnable); |
| 262 | 275 | mReadThread.release(); |
| 276 | + mHeatBeatThread.release(); | |
| 263 | 277 | sendRegister = false; |
| 264 | 278 | releaseLastSocket(mSocket); |
| 265 | 279 | new InitSocketThread().start(); |
| 266 | 280 | } |
| 267 | 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 | 284 | try { |
| 271 | 285 | Thread.sleep(HEART_BEAT_RATE); | ... | ... |
Please
register
or
login
to post a comment