2

我有一个 android 应用程序试图连接到 AsyncTask 中的网站并执行一些任务。当网络连接发生变化时,我的应用程序似乎总是崩溃,即应用程序最初连接到 wifi 网络,但失去连接并切换到移动网络。发生这种情况时,我的 Android 应用程序崩溃。我的代码被包围在一个 try catch 块中,所以我不确定为什么应用程序会崩溃?我该如何解决我的问题?

谢谢!

4

2 回答 2

0

在继续您的网站连接之前,您必须确保等待网络连接可用。

另外,请注意,如果您尝试在未事先禁用 WiFi 的情况下启用移动连接,Android 系统会自动关闭新启用的移动连接(优先考虑 WiFi 进行总结)。因此,您需要确保以正确的顺序进行操作:

  1. (启用 WiFi)
  2. (无线网络就绪)
  3. 网站连接已开始
  4. 网站连接已停止
  5. (无线网络禁用)
  6. (无线网络不可用)
  7. (启用移动)
  8. (手机就绪)
  9. 网站连接已恢复
于 2012-12-05T09:54:40.937 回答
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:如何以编程方式启用/禁用 Wifi 或 Internet 连接

于 2012-12-05T08:30:35.003 回答