編輯:關於android開發
今天研究這個問題搞了整整一天啊!終於出來了,不過我沒有多大的成就感,為什麼呢?因為這是我學長的勞動成果。同樣的問題,我卻沒想出來!心塞的很啊……
不過還是要給大家分享一下,希望給大家帶來幫助!
先聲明一下:不是我不放源碼,是因為這個功能是我項目的一小部分,貼源碼太聲勢浩蕩了,,而且下載後不一定能用,所以就貼核心代碼啦~
我是以每分鐘向服務端發送一個心跳來保持連接的,如下:

sendObject()中的代碼(就是發送內容到服務端):
public void sendObject(String obj) throws IOException {
DataOutputStream os = new DataOutputStream(socket.getOutputStream());
os.write(obj.getBytes());
os.flush();
System.out.println("發送:" + obj + "客戶端");
}
重點來了,怎麼保證服務重啟時候自動連接呢?
public static void resetSocket(){
while(SocketClient.isServerClose(socket)){
try {
socket = new Socket(SERVERIP,PORT);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
} catch (IOException e) {
System.out.println("正在重連....");
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
}
/**
* 判斷是否斷開連接,斷開返回true,沒有返回false
* @param socket
* @return
*/
public static Boolean isServerClose(Socket socket){
try{
socket.sendUrgentData(0);//發送1個字節的緊急數據,默認情況下,服務器端沒有開啟緊急數據處理,不影響正常通信
return false;
}catch(Exception se){
return true;
}
}
最後,將SocketClient.resetSocket();放入圖片中的catch{}中,捕獲異常的時候重新連接,就可以實現想要的效果了。
希望給大家帶來幫助,謝謝!
安卓 應用程序修改圖標不更新,安卓圖標
安卓 應用程序修改圖標不更新,安卓圖標自己在做項目時,真機測試時想更換應用程序的圖標(虛擬機更換後可以更新),但是更換後重新運行並沒有更新圖標。經過嘗試,最終通過重啟手機
QQ好友列表向左滑動出現置頂、刪除--第三方開源--SwipeMenuListView,swipemenulistview
QQ好友列表向左滑動出現置頂、刪除--第三方開源--SwipeMenuListView,swipemenulistview SwipeMenuListView是在gith
Android 應用程序集成Google 登錄,androidgoogle
Android 應用程序集成Google 登錄,androidgoogle谷歌登錄API: https://developers.google.com/ide
Android UI ListView的使用,androidlistview
Android UI ListView的使用,androidlistview一、ListView的理解 1.什麼ListView?