RxJava在stream events处理上真的是一个利器。下面的示范代码显示如何用它来监听android设备的网络连接状况,实时接收change信息。
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
AndroidObservable.fromBroadcast(this, filter)
.subscribe(new Subscriber<Intent>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
Log.i(TAG,"is not connect "+noConnectivity );
} }); }
当然不要忘记在Androidmanifest添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />