Android でインターネット接続を確認するためのブロードキャスト レシーバー
Android アプリケーションの開発では、インターネット接続の可用性を監視することが重要です。ブロードキャスト受信機を使用すると、軽量で効率的なソリューションが提供されます。ただし、特定のシナリオでは、トラブルシューティングが必要な問題が発生する可能性があります。
問題: ブロードキャスト レシーバーが複数回呼び出される
潜在的な問題の 1 つは、ブロードキャスト レシーバーが 2 回呼び出されるということです。ネットワークが利用可能な場合にのみ呼び出されるという意図にもかかわらず。これを解決するには、マニフェスト ファイルで定義されているインテント フィルターを調べます。 「android.net.conn.CONNECTIVITY_CHANGE」と「android.net.wifi.WIFI_STATE_CHANGED」など、複数のアクションを指定した場合、受信側は両方に応答します。ネットワーク変更への応答を制限するには、「android.net.conn.CONNECTIVITY_CHANGE」アクションのみを使用することを検討してください。
ネットワークが利用可能な場合にのみ通話を行うようにします
提供されたコードWi-Fi またはモバイル ネットワークが利用可能かどうかを確認し、それに応じて通知します。この動作は予想どおりです。インターネット接続が確立されている場合にのみ受信者を呼び出したい場合は、コードを変更して、別のアプローチを使用して現在のネットワーク ステータスを確認できます。
最適化接続チェッカー
ブロードキャスト受信機に依存する代わりに、接続性をチェックするためのより効率的な方法を実装できます。次のスニペットは、デバイスがインターネットにアクセスできるかどうかを確認する方法を示しています:
public boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); // Check for null as in airplane mode, it may be null return (netInfo != null && netInfo.isConnected()); }
このメソッドを使用すると、インターネット接続を明示的に確認し、不要な通知を回避できます。
以上がインターネット接続用の Android ブロードキャスト レシーバーが複数回呼び出されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。