2014-09-25 66 views
0

我在我的應用程序中實現了套接字,因此它與服務器通信,而我的問題是我無法確定套接字在以下情況下關閉。Handiling disconnected Sockets

1)IAM Wi-Fi連接具有有效的互聯網連接,並具有活性的套接字連接與我的互聯網連接斷開

2)當已經連接到2G/3G網絡連接,有時插座連接斷開

在上述情況下,我無法確定是否存在活動的套接字連接。是否有任何方法可以在android中實現此目的?

請幫助...

+0

我可以說的是使用'互聯網連接廣播receiver'或嘗試你有沒有嘗試這些方法從'InputStream' – mmlooloo 2014-09-27 11:32:52

回答

0

看看Android的Determining and Monitoring the Connectivity Status

可以使用ConnectivityManager檢查你實際上連接到互聯網,如果是這樣,什麼類型連接到位。

有一些示例代碼:

ConnectivityManager cm = 
     (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
boolean isConnected = activeNetwork != null && 
         activeNetwork.isConnectedOrConnecting(); 

此外,

的ConnectivityManager廣播每當連接細節已經改變了CONNECTIVITY_ACTION( 「android.net.conn.CONNECTIVITY_CHANGE」)的行動。您可以在清單中註冊廣播接收器來監聽這些更改並相應地恢復(或暫停)您的後臺更新。

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 
+0

讀? – sam 2014-09-25 16:24:49

+0

不,但是這是針對您要處理的確切情況而明確創建的。它不適合你嗎? – 2014-09-25 16:38:31

+0

這沒關係,如果我的連接下降或如果IAM從一個連接更改爲另一個連接..但那不是我的情況..我試過這個,但不工作 – sam 2014-09-25 16:40:47