0

以下のコードを使用して、アプリケーションのスプラッシュ画面でユーザーがインターネットに接続しているかどうかを検出していますが、ユーザーが特定のアクティビティを行っているときは常にこれを検出する必要があります。ターンバイターン方式のナビゲーションを使用していて、インターネット接続に依存していると想像してください。そのため、インターネット接続の切断が発生したときにそれを検出する必要があります。

無限ループでアプリの速度を落とさずにこれを行うにはどうすればよいですか?

private boolean isOnline(Context context) {
    try {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo networkInfo = cm.getActiveNetworkInfo();

        return (networkInfo != null && networkInfo.isConnected());
    } catch (Exception exc) {
        return false;
    }
}
4

2 に答える 2

0

BroadcastReceiverそのためには do を使用する必要があります。

例を使用して、これについてより良いアイデアを得ることができる、これに関するいくつかの参考文献を次に示します。

参考1

参考2

参考3

ありがとう、

于 2013-01-20T13:01:27.173 に答える
0

PhoneStateListenerを使用して独自のサービスを作成する必要があると思います。このメソッドを実装する必要がありますpublic void onDataConnectionStateChanged(int state) {}。このサービスから、DataConection がある場合はいつでもチェックインできます。

これはAndroid PhoneStateListenerの図に関する記事です– Google カレンダーへの呼び出しの自動ログ記録の例

于 2013-01-20T12:56:07.970 に答える