android - 检查 Continuos Connection 未在 BaseActivity 中启动

标签 android android-activity observable rx-java2

我正在使用下一个库 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 来扩展其他 Activity 。

谢谢

最佳答案

理想情况下,您在订阅后立即处理 networkDisposable 它应该在 Activity 销毁时处理,这就是为什么您没有获得任何网络更新将 safelyDispose() 移动到销毁

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

关于android - 检查 Continuos Connection 未在 BaseActivity 中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131736/

相关文章:

android - 有没有可以使用的安卓游戏框架

Java、安卓: Activity not found exception when exporting

java - 更改 Activity 时应用程序崩溃 (Android)

ios - observables 和 UItableview 可见单元格

angular - 调用函数时清除 Observable 值

android - 屏幕打开时开始 Activity

android - OS X 10.6.6 和 "adb devices"无法列出 android 设备

Android:UI 协作(Jenkins+Spoon+?)

android - 是否可以将 Activity 传递给非 Activity 类?

javascript - Angular 5 Typescript 表示 webpack 失败,因为响应类型上不存在属性数据