2016-03-23 5 views
1

デバイスがインターネットから切断される前に、ユーザーがブロードキャストを受信することが可能であることを知りたい場合は、ブロードキャストレシーバーを既に使用しています。ネットワークの変更をキャッチするが、それはインターネットが、私は以下のコード使用しています切断された後に実行されます。私は、インターネットが接続されると、サービスを実行するために、上記のコードを使用していますインターネットが切断される前にブロードキャストレシーバー

public class InternetReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(final Context context, final Intent intent) { 
    if (isNetworkAvailable(context) && !isMyServiceRunning(MessagingService.class,context)){ 
     Intent i = new Intent(context,MessagingService.class); 
     context.startService(i); 
     Log.e("service started ","true"); 
    } 

} 

private boolean isMyServiceRunning(Class<?> serviceClass, Context c) { 
    ActivityManager manager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE); 
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if (serviceClass.getName().equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 


public boolean isNetworkAvailable(Context c) { 
    ConnectivityManager connectivityManager 
      = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 
} 

をが、それは一例に過ぎない

答えて

0

編集:私はあなたがあなたのWi-Fiの切断ボタンをクリックしてください

あなたのWiFi環境と接続に関する情報を取得する可能性のあるAndroidのWifiManagerを使用して、Wi-Fi接続の状態を確認できます。

接続性が確立または切断され、ネットワークの状態に関する動的情報が照会されます。

出典:

http://developer.android.com/reference/android/net/wifi/WifiManager.htmlは以下を見てください。私はそれがあなたに役立つだろうと思う。

WIFI_STATE_CHANGED_ACTION Wi-Fiが有効、無効、有効化、無効化、または不明であることを示すブロードキャストインテントアクション。

int WIFI_STATE_DISABLED Wi-Fiが無効です。

int WIFI_STATE_DISABLING Wi-Fiは現在無効になっています。

+0

答えていただきありがとうございます。私は無線LANで放送を受けると、インターネットが既に切断された後になるのでしょうか?インターネットが切断される前に無線LANの無効化が送信された場合、これは依然として、呼び出されたメソッドが完了するまで、またはインターネットの切断が待つことを保証しません。 –

+0

私は物事が注文に関してどのようにふるまうかを教えてくれません、あなたはそれを試さなければなりません。私はアプリ内から呼び出されたメソッドが実行されるまでアンドロイドが切断されるのを防ぐことはできないとは思わない。 別の方法で目標を達成する可能性はありますか? –

+0

私のアプリはソケットサーバーに接続されており、インターネット接続が切断されています。サーバーにそのソケットのソケットを閉じるように伝える小さなパッケージを送信してサーバーに通知します。無効であり、後でデータを送信しようとします:/ –

関連する問題