2

AsyncTaskでWebサイトに接続し、いくつかのタスクを実行しようとしたAndroidアプリがあります。ネットワーク接続に変更があると、アプリケーションが常にクラッシュするように見えます。つまり、アプリは最初はWi-Fiネットワークに接続されていますが、接続が失われ、モバイルネットワークに切り替わります。これが発生すると、Androidアプリケーションがクラッシュします。私のコードはtrycatchブロックで囲まれているので、アプリケーションがクラッシュする理由がわかりませんか?問題を解決するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

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 またはインターネット接続をプログラムで有効/無効にする方法

于 2012-12-05T08:30:35.003 に答える
0

Web サイトへの接続を続行する前に、ネットワーク接続が利用可能になるまで待つ必要があります。

さらに、事前に WiFi を無効にせずにモバイル接続を有効にしようとすると、Android システムは新しく有効になったモバイル接続を自動的にシャットダウンすることに注意してください (つまり、WiFi が優先されます)。したがって、正しい順序で実行する必要があります。

  1. (WiFi対応)
  2. (WiFi対応)
  3. ウェブサイト接続 STARTED
  4. ウェブサイトの接続が停止しました
  5. (WiFi 無効)
  6. (Wi-Fi 利用不可)
  7. (モバイル対応)
  8. (モバイル対応)
  9. ウェブサイトの接続が再開されました
于 2012-12-05T09:54:40.937 に答える