Android-RxJava 常见API使用以及线程转换要点

什么是RxJava?RxJava 在 GitHub上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava。接下来不多说什么了,直
摘要由CSDN通过智能技术生成

什么是RxJava?RxJava 在 GitHub上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava。

接下来不多说什么了,直接进入今天的主题吧

一.API使用

RxJava的API使用,包括Observable的创建,以及变换,以及数据的过滤等

1.Observable创建

Observable的创建有几种方式,比如create,just,from,interval,timer

1.1 create方法,是Rxjava中创建Observable最基本的方法,例子如下-创建Observable时,传入onSubsribe作为参数,会被存储在Observable对象中,当Observable被订阅时,就会触发其call方法。

private void testRxMethod_create() {
        Observable<RxBeanInfo> observable = Observable.create(new Observable.OnSubscribe<RxBeanInfo>() {
            @Override
            public void call(Subscriber<? super RxBeanInfo> subscriber) {
                RxBeanInfo info = new RxBeanInfo();
                info.setName("lqm.test");
                subscriber.onNext(info);
                subscriber.onCompleted();
            }});
        Subscriber<RxBeanInfo> subscriber = new Subscriber<RxBeanInfo>()
        {
            @Override
            public void onCompleted() {
                Log.i("rxjava", "onCompleted");
            }
            @Override
            public void onError(Throwable e) {
                Log.i("rxjava", "error");
            }
            @Override
            public void onNext(RxBeanInfo o) {
                Log.i("rxjava", o.getName());
            }};
        //通过调用subscribe方法使观察者和订阅者产生关联,一旦订阅,Observable就会调用call().
        observable.subscribe(subscriber);
    }
11-17 14:27:14.513 14944-14944/pa.test.com.testapp I/rxjava: lqm.test
11-17 14:27:14.513 14944-14944/pa.test.com.testapp I/rxjava: onCompleted

1.2.just—通过调用just方法,传入你想发送的数据源,当订阅者进行订阅的时候就开始打印数据,需要注意的是,just()方法最多可传10个参数,它们会按照传入的参数的顺序来发射它们

private void testRxMethod_just() {
        Observable<String> observable = Observable.just("1", "2", "3","4", "5","6","7","8","9","10");
        Subscriber<String> subscriber = new Subscriber<String>()
        {
            @Override
            public void onCompleted() {
                Log.i("rxjava", "onCompleted");
            }
            @Override
            public void onError(Throwable e) {
                Log.i("rxjava", "error");
            }
            @Override
            public void onNext(String o) {
                Log.i("rxjava", o);
            }};
        observable.subscribe(subscriber);
   }

1.3.from—该方法参数是一个数组,然后from会将其拆分为一个个对象,发射出去

private void testRxMethod_from() {
        List<String> items = new ArrayList<>();
        items.add("1");
        items.add("2");
        items.add("3");
        Observable<String> observable = Observable.from(items);
        Subscriber<String> subscriber = new Subscriber<String>()
        {
            @Override
            public void onCompleted() {
                Log.i("rxjava", "onCompleted");
            }
            @Override
            public void onError(Throwable e) {
                Log.i("rxjava", "error");
            }
            @Override
            public void onNext(String o) {
                Log.i("rxjava", o);
            }};
        observable.subscribe(subscriber);
    }
11-17 14:44:13.043 30921-30921/pa.test
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Android-serialport-api示例是一个基于Android系统的串口通信API的演示,旨在帮助开发者了解和学习如何在Android设备上使用串口。 使用该示例API之前,需要先确保设备已经具备串口功能,可以通过OTG线连接串口设备或者在开发板上直接使用串口。 示例中提供了一些基本的串口通信功能,开发者可以根据自己的需求进行扩展和修改。例如,示例中可以通过设置串口名称、波特率、数据位、停止位和校验位来打开串口,也可以通过串口发送和接收数据。 该示例API主要包含以下几个类和方法: 1. SerialPort类:该类用于打开和关闭串口,通过设置串口名称和波特率等参数,可以实现对串口的控制。 2. SerialPortFinder类:该类用于查找设备上的串口列表,可以获取串口设备名称、文件描述符等信息。 3. SerialPortFinder类中的getDrivers方法:该方法用于获取设备上的串口列表。 4. SerialPortFinder类中的getAllDevicesPath方法:该方法用于获取设备上所有串口设备的路径。 5. SerialPort类中的onDataReceived方法:该方法用于接收串口数据,开发者可以根据自己的需求进行处理。 通过这些类和方法,开发者可以实现将Android设备与外部设备通过串口进行通信,实现一些特定的功能,如串口设备的数据读取和写入。 需要注意的是,使用该示例API需要在AndroidManifest.xml文件中添加相关权限,如访问串口设备的权限等。 总的来说,android-serialport-api示例提供了一套在Android设备上进行串口通信的API,方便开发者学习和实践串口通信的相关知识。 ### 回答2: android-serialport-api是一个用于在Android设备上进行串口通信的开源库。该库提供了一些示例,可以帮助开发者了解如何使用它。 首先,这些示例中包含了一些基本的功能,比如打开和关闭串口、读取和写入数据等。开发者可以通过这些示例学习如何在自己的应用程序中使用这些功能。 此外,示例还演示了如何设置串口的一些参数,例如波特率、数据位、停止位和校验位等。这对于与外部设备进行通信时非常重要,因为不同的设备可能需要不同的参数设置。 示例还展示了如何使用线程来处理串口通信,以避免阻塞用户界面。这是很重要的,因为串口通信可能需要一些时间,如果在主线程中进行,会导致应用程序无响应。 另外,示例还介绍了一些高级功能,如如何处理异常情况、如何监听串口数据的变化等。这些功能可以帮助开发者更好地处理各种情况,确保串口通信的可靠性和稳定性。 总之,android-serialport-api示例提供了一个很好的学习资源,可以帮助开发者快速上手并了解如何在Android设备上进行串口通信。通过这些示例,开发者可以更好地理解该库的使用方法,并在自己的应用程序中实现所需的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值