Сервис Android для проверки интернет-соединения?

Я хочу создать сервис Android, который уведомляет основной вид деятельности каждый раз, когда разъединения и когда Интернет снова соединяется снова. У меня есть следующая функция для проверки Интернета connectivity:.

private boolean haveInternet(){
        NetworkInfo info=(NetworkInfo)((ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

        if(info==null || !info.isConnected()){
            return false;
        }
        if(info.isRoaming()){
            //here is the roaming option you can change it if you want to disable internet while roaming, just return false
            return true;
        }
        return true;
    }

Но я хочу знать, как использовать его в сервисе.

10
задан Adnan 29 June 2010 в 14:45
поделиться

1 ответ

Сервисы предназначены для длительной работы в фоновом режиме. Вам следует использовать BroadcastReceiver :

Это пример метода, который я использую для отслеживания состояния сети в моем основном Activity:

private void installListener() {

        if (broadcastReceiver == null) {

            broadcastReceiver = new BroadcastReceiver() {

                @Override
                public void onReceive(Context context, Intent intent) {

                    Bundle extras = intent.getExtras();

                    NetworkInfo info = (NetworkInfo) extras
                            .getParcelable("networkInfo");

                    State state = info.getState();
                    Log.d("InternalBroadcastReceiver", info.toString() + " "
                            + state.toString());

                    if (state == State.CONNECTED) {

                        onNetworkUp();

                    } else {

                        onNetworkDown();

                    }

                }
            };

            final IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            registerReceiver(broadcastReceiver, intentFilter);
        }
    }

Не забудьте вызвать unregisterReceiver при возникновении события onDestroy

Надеюсь на эту помощь .

28
ответ дан 3 December 2019 в 15:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: