第一种

    public static Observable receiverObservable(final Context context, final IntentFilter intentFilter) {        return Observable.create(new Observable.OnSubscribe () {            private BroadcastReceiver receiver;            @Override            public void call(final Subscriber <? super Intent> subscriber) {                context.registerReceiver(receiver = new BroadcastReceiver() {                    @Override                    public void onReceive(Context context, Intent intent) {                        if (!subscriber.isUnsubscribed()) {                            subscriber.onNext(intent);                        }                    }                }, intentFilter);                subscriber.add(Subscriptions.create(new Action0() {                    @Override                    public void call() {                        context.unregisterReceiver(receiver);                    }                }));            }        });    }

第二种

    public static Observable receiverObservable2(final Context context, final IntentFilter intentFilter) {        return  Observable.fromEmitter(new Action1 >() {            private BroadcastReceiver receiver;                        @Override            public void call(final Emitter  intentEmitter) {                context.registerReceiver(receiver = new BroadcastReceiver() {                    @Override                    public void onReceive(Context context, Intent intent) {                        intentEmitter.onNext(intent);                    }                }, intentFilter);                intentEmitter.setCancellation(new Cancellable() {                    @Override                    public void cancel() throws Exception {                        context.unregisterReceiver(receiver);                    }                });            }        }, Emitter.BackpressureMode.BUFFER);    }

同理我们可以将系统或者自定义的异步回调的接口转化成obsevable的方式,当然有时候回调的方法会是多个不像rxjava中提供的onNext,那么我们只能根据onNext传参来区分

更多相关文章

  1. RadioGroup控件(接口类监听事件)
  2. Android4.4.X调用Alarmmanager接口
  3. android OTA修改
  4. 第二章实例:Android窗口菜单显示
  5. Android(安卓)技术专题系列之七 -- 输入法 框架
  6. 2.2 窗口屏幕参数及UI样式---Display 和Style
  7. Android(安卓)5.0 Camera2新接口
  8. Android业务层代码结构扩展 - from MVP to MVPplus
  9. Android异步接口测试

随机推荐

  1. 使用HTML来生产Android界面
  2. android混淆代码bug跟踪
  3. android onPause()和onStop()区别
  4. Android(安卓)WebView内容宽度自适应
  5. Android(安卓)动画有拖影
  6. Android捕获全局异常信息并实现上传
  7. Android事件分发机制学习笔记
  8. android命令
  9. Android(安卓)模拟器创建参数说明
  10. Android(安卓)Studio使用profile简单优雅