0
こんにちは、私は、クライアントのサーバーアーキテクチャは、ANdroidでTCPソケット接続を持っています。私はサービス 'onStart()'にソケットリスナースレッドを持っています。何とか接続が失われた後にサーバーに再接続したい。どうすればこの問題を設計できますか?私はいくつかの方法を試しましたが、サービス開始時に無限ループに入りました...答えるためにありがとう。 私のAndroidネットワークサービスの寿命はどのくらいですか?
リスナーのコードは次のようである
...@Override
public void onStart(final Intent intent, int startId) {
super.onStart(intent, startId);
Log.d(TAG, "onSTARTED!!");
if(!mySocket.isConnected()){
connectiontoServer();
}
clientListenerThread = new Thread(new Runnable() { // TCP Socket Listener
public void run() {
String line = new String();
try {
while(mySocket.isConnected() && ((line = in.readLine()) != null)){
try{
Log.d(TAG, "service onStart-while true");
String[] tokens = line.split(MessageClass.ayirac);
Log.d(TAG+"-MSG", line);
tokens = line.split(MessageClass.ayirac);
int msgCase = Integer.parseInt(tokens[0]);
switch(msgCase){
case -5:
responseEntrance(line);
break;
case 1:
responseLogin1(line);
break;
case 2:
responseRegister2(tokens);
break;
default:
break;
}
}catch (Exception e) {
e.printStackTrace();
Log.d(TAG, "CATCH1 !");
continue;
}
}
}catch(IOException e){
e.printStackTrace();
if(!mySocket.isConnected()){
Log.d(TAG,"ConnectionDOWN! in catch2");
stopAndDestroyMyActivity();
}
}
Log.d(TAG, "LISTENING FINISH!");
stopAndDestroyMyActivity();
}
});
clientListenerThread.start();
}