我正在使用下一个库 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/