0

Webビューを使用してインターネットからの音声を聞くアプリを作成しました。ここで、インターネットアクティビティがあるかどうかを確認するメソッド(isOnline)を追加します。疑問があります。OnCreateで常に実行されているこのメソッドを使用できますか?

public boolean isOnline() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
4

1 に答える 1

1

onCreate()の実行をブロックすると、別名UIスレッドがブロックされ、アプリはANR(Application Not Responding)例外をスローします。

ただし、メソッドは、インターンに接続していることを通知するのではなく、デバイスが最寄りのルーターに接続されていることを通知するだけです。その後は何がわかりません。

実際のインターネット接続を確認するには、www.google.comなどのサーバーにリクエストを送信する必要があります。回答が得られれば、接続はライブになっています。

また、接続を継続的に監視する必要はありません。最も簡単な方法では、バックグラウンドスレッドでこれを実行できますが、ラジオプレーヤーからイベントを取得できない場合に限ります。

于 2013-01-24T16:10:10.397 に答える