我有一个 android 应用程序试图连接到 AsyncTask 中的网站并执行一些任务。当网络连接发生变化时,我的应用程序似乎总是崩溃,即应用程序最初连接到 wifi 网络,但失去连接并切换到移动网络。发生这种情况时,我的 Android 应用程序崩溃。我的代码被包围在一个 try catch 块中,所以我不确定为什么应用程序会崩溃?我该如何解决我的问题?
谢谢!
我有一个 android 应用程序试图连接到 AsyncTask 中的网站并执行一些任务。当网络连接发生变化时,我的应用程序似乎总是崩溃,即应用程序最初连接到 wifi 网络,但失去连接并切换到移动网络。发生这种情况时,我的 Android 应用程序崩溃。我的代码被包围在一个 try catch 块中,所以我不确定为什么应用程序会崩溃?我该如何解决我的问题?
谢谢!
在继续您的网站连接之前,您必须确保等待网络连接可用。
另外,请注意,如果您尝试在未事先禁用 WiFi 的情况下启用移动连接,Android 系统会自动关闭新启用的移动连接(优先考虑 WiFi 进行总结)。因此,您需要确保以正确的顺序进行操作:
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。
或者你可以使用以下链接