Проверьте Continuos Connection не запускается в BaseActivity - PullRequest
1 голос
/ 27 сентября 2019

Я использую следующую библиотеку ReactiveNetwork , чтобы прослушать изменения в сети, чтобы определить, когда сеть отключена, но я реализовал это на BaseActivity, но неничего не делать.

Что-то не так?Дайте мне знать.

  public class BaseActivity extends AppCompatActivity {

      private Disposable networkDisposable;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        connectivityMonitorized();
        safelyDispose(networkDisposable);
      }

      private void safelyDispose(Disposable... disposables) {
        for (Disposable subscription : disposables) {
          if (subscription != null && !subscription.isDisposed()) {
              subscription.dispose();
          }
        }
      }

    @SuppressLint("CheckResult")
    public void connectivityMonitorized(){

        networkDisposable = ReactiveNetwork
                .observeNetworkConnectivity(this)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(connectivity -> {
                    if (connectivity.state() == NetworkInfo.State.DISCONNECTED || connectivity.state() == NetworkInfo.State.DISCONNECTING) {
                        //TODO DIALOG SHOWING DISCONNECTED
                    }
                });

        }

}

Я использую этот BaseActivity для расширения в других видах деятельности.

Спасибо

1 Ответ

0 голосов
/ 27 сентября 2019

Вы утилизируете networkDisposable, как только она будет подписана, в идеале она должна быть размещена на уничтожении активности, поэтому вы не получаете никаких обновлений сети, переместите safeDispose () в on destroy

@Override
protected void onDestroy() {
   super.onDestroy();
   safelyDispose(networkDisposable);
}
...