我有一个Android应用程序试图连接到AsyncTask中的网站并执行一些任务。当网络连接发生变化时,我的应用程序似乎总是崩溃,即应用程序最初连接到wifi网络,但丢失连接并切换到移动网络。发生这种情况时,我的Android应用程序崩溃了。我的代码被try catch块包围,所以我不确定为什么应用程序会崩溃?我如何解决我的问题?
谢谢!
答案 0 :(得分:0)
WifiInfo info = WifiManager.getConnectionInfo();
if (info.getSSID() != null) {
String ssid = info.getSSID();
...
}
我不知道写作是否有点过分:
if (info != null && info.getSSID() != null)
此外,建立连接时我需要监视的BroadcastReceiver是WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION。事实证明我的onResume()中有一个复制和粘贴错误,而我实际上并没有注册WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION。
或您可以使用以下链接
Android: How to Enable/Disable Wifi or Internet Connection Programmatically
答案 1 :(得分:0)
在继续网站连接之前,您必须确保等待网络连接可用。
另外,请注意,如果您尝试在未事先禁用WiFi的情况下启用移动连接,Android系统将自动关闭新启用的移动连接(它优先考虑WiFi以进行总结)。因此,您需要确保以正确的顺序执行此操作: