我的應用程序在後臺運行(作爲服務),並且需要始終連接到遠程服務器以接收和發送消息。Android Internet連接廣播接收器
此服務運行管理其與服務器的連接(帶插座)一個線程
我試圖寫一個互聯網連接廣播接收器將運行每次上網狀態改變時,並檢查狀態連接斷開。
我的問題如下:當我連接到Wi-Fi網絡時,廣播接收器意圖被髮射幾次,其中所有的互聯網連接狀態都是真實的(每次火災之間沒有斷開,意味着我有幾個新的線程使用套接字來連接服務器。
我怎樣才能確保我得到的狀態的互聯網權利,並通過我的意思是.isConnected()方法將返回如果和?只有當連接連接
這是我的代碼:
public void onReceive(Context context, Intent intent)
{
action = intent.getAction();
app = (AppVariables) context.getApplicationContext();
if (app.isApplicationInitilized())
{
if (action.equals(action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)))
{
networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (networkInfo.isConnected())
app.getServerConnectionManager().startServer();
}
else if(action.equals(ConnectivityManager.CONNECTIVITY_ACTION))
{
networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && !networkInfo.isConnected())
app.getServerConnectionManager().stopServer(false);
else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE && !networkInfo.isConnected())
app.getServerConnectionManager().stopServer(false);
else
app.getServerConnectionManager().startServer();
}
}
}
您正在使用的操作請讓我知道。我也需要使用。預先感謝 – rup35h