デバイスがインターネットから切断される前に、ユーザーがブロードキャストを受信することが可能であることを知りたい場合は、ブロードキャストレシーバーを既に使用しています。ネットワークの変更をキャッチするが、それはインターネットが、私は以下のコード使用しています切断された後に実行されます。私は、インターネットが接続されると、サービスを実行するために、上記のコードを使用していますインターネットが切断される前にブロードキャストレシーバー
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();
}
}
をが、それは一例に過ぎない
答えていただきありがとうございます。私は無線LANで放送を受けると、インターネットが既に切断された後になるのでしょうか?インターネットが切断される前に無線LANの無効化が送信された場合、これは依然として、呼び出されたメソッドが完了するまで、またはインターネットの切断が待つことを保証しません。 –
私は物事が注文に関してどのようにふるまうかを教えてくれません、あなたはそれを試さなければなりません。私はアプリ内から呼び出されたメソッドが実行されるまでアンドロイドが切断されるのを防ぐことはできないとは思わない。 別の方法で目標を達成する可能性はありますか? –
私のアプリはソケットサーバーに接続されており、インターネット接続が切断されています。サーバーにそのソケットのソケットを閉じるように伝える小さなパッケージを送信してサーバーに通知します。無効であり、後でデータを送信しようとします:/ –