0
我正在研究必須在後臺工作的應用程序,它必須發送地理定位。它已經在製作中,我們有時會遇到一個問題,即應用程序只是停止發送信息。Android丟失網絡連接,並保持斷開連接
似乎只有電話重新啓動有幫助。
現在我必須解決這個問題,在我看來,重置Networkstack可以解決問題。我的問題是,我如何編程重置網絡連接?或者是否有人對此問題有任何其他建議。
我正在研究必須在後臺工作的應用程序,它必須發送地理定位。它已經在製作中,我們有時會遇到一個問題,即應用程序只是停止發送信息。Android丟失網絡連接,並保持斷開連接
似乎只有電話重新啓動有幫助。
現在我必須解決這個問題,在我看來,重置Networkstack可以解決問題。我的問題是,我如何編程重置網絡連接?或者是否有人對此問題有任何其他建議。
我該如何編程重置網絡連接?或者是否有人對此問題有任何其他建議 。
您不應該以編程方式啓動網絡連接。我建議您在將位置發佈到服務器之前檢查網絡連接,並且如果設備已斷開連接,則向用戶顯示通知以啓用網絡連接。
爲什麼我的代碼
此功能不贊成組網絡連接可以花費用戶。因此提出通知並讓用戶啓動網絡連接。
是的,如果用戶dosn't啓動網絡連接您的應用程序不會發布位置了。
更新監聽設備的網絡狀態
註冊一個接收器,以監聽CONNECTIVITY_ACTION
例如:
BroadcastReceiver sampleNetworkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("sampleNetworkStateReceiver", "Network State has Changed");
//For a disconnect event, the boolean extra EXTRA_NO_CONNECTIVITY is set to true if there are no connected networks at all.
// So you need to get EXTRA_NO_CONNECTIVITY extra from intent.
// that will tell you if device has loses the conectivity.
boolean noConnectivity =
intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (noConnectivity) {
//TODO: Task for Device has no connection
} else {
//TODO: Task for Device has connection
}
}
};
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(sampleNetworkStateReceiver, filter);
價:NetworkConnectivityListener和Determining and Monitoring the Connectivity Status
問題是這樣的。我怎麼知道互聯網連接是否因爲沒有可用的網絡連接而消失了,在這種情況下,正確的做法就是等待用戶返回到範圍內,以及電話網絡堆棧崩潰的情況。 – nickik 2013-05-08 14:35:22
@nickik看到我更新的答案。 – 2013-05-09 05:12:25
@nickik你找到這個答案對不對? – 2014-08-27 13:17:38