Android丢失网络连接,并保持断开连接
问题描述:
我正在研究必须在后台工作的应用程序,它必须发送地理定位。它已经在制作中,我们有时会遇到一个问题,即应用程序只是停止发送信息。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