国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一起Talk Android吧(第五百三十八回:RxJava中的線程切換)

這篇具有很好參考價(jià)值的文章主要介紹了一起Talk Android吧(第五百三十八回:RxJava中的線程切換)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


各位看官們大家好,上一回中咱們說(shuō)的例子是"RxJava中的多線程操作",本章回中介紹的例子是"R xJava中的線程切換"。閑話休提,言歸正轉(zhuǎn),讓我們一起Talk Android吧!

概念介紹

我們?cè)谏弦徽禄刂薪榻B了如何創(chuàng)建多線程,本章回將介紹如何進(jìn)行線程切換。線程切換是指在主線程和子線程之間進(jìn)行切換,因?yàn)锳ndroid只能在主線程中更新UI,所以通過(guò)線程切換來(lái)更新UI。切換切換也可以通過(guò)Andoird的Handler機(jī)制實(shí)現(xiàn),我們之前介紹過(guò),這里就不展開(kāi)討論了。

使用方法

線程切換也是使用subscribeOn或者observeOn操作符,切換線程時(shí)使用不同的參數(shù):

  • 切換到子線程時(shí)使用的參數(shù)為Schedulers.newThread()
  • 切換到主線程時(shí)使用的參數(shù)為AndroidSchedulers.mainThread()。

示例代碼

Log.d(TAG, "rxJavaEx: "+Thread.currentThread());
Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(@io.reactivex.rxjava3.annotations.NonNull ObservableEmitter<String> emitter) throws Throwable {
                Log.d(TAG, "subscribe: "+Thread.currentThread());
                emitter.onNext("Event 1");
                emitter.onNext("Event 2");
                emitter.onComplete();
            }
        })
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Throwable {
                Log.d(TAG, " Observer accept: "+s+" "+Thread.currentThread());
            }
        });

注意:上面程序中使用的AndroidSchedulers類(lèi)來(lái)自rxjava包,而不是rxandroid包,在文件頭import包時(shí)需要區(qū)分這兩種包,否則使用rxAndroid包中的類(lèi)時(shí)程序會(huì)報(bào)編譯錯(cuò)誤。我的項(xiàng)目在gradle中導(dǎo)入了rxAndroid依賴(lài),因此會(huì)有rxJava和rxAndroid兩種類(lèi)型的包,大家的項(xiàng)目可能不會(huì)有這種情況。

上面的代碼中我們先是把被觀察者切換到了子線程運(yùn)行,然后把觀察者切換到主線程運(yùn)行。編譯并且運(yùn)行該程序,通過(guò)結(jié)果來(lái)檢驗(yàn)是否可以在子線程和主線程之間切換。

: rxJavaEx: Thread[main,5,main]
: subscribe: Thread[RxNewThreadScheduler-1,5,main]
:  Observer accept: Event 1 Thread[main,5,main]
:  Observer accept: Event 2 Thread[main,5,main]

從程序的運(yùn)行結(jié)果中可以看到所有的程序運(yùn)行在主線程main中,被觀察者運(yùn)行在子線程RxNewThreadScheduler-1中,觀察者運(yùn)行在主線程main中。該結(jié)果與我們剛才分析的程序邏輯完全一致,表明上面的程序可以實(shí)現(xiàn)線程切換功能。

看官們,關(guān)于"RxJava中的線程切換"的例子咱們就介紹到這里,欲知后面還有什么例子,且聽(tīng)下回分解!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-405216.html

到了這里,關(guān)于一起Talk Android吧(第五百三十八回:RxJava中的線程切換)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第一百一十八回 如何獲取藍(lán)牙連接狀態(tài)

    我們?cè)谏弦徽禄刂薪榻B了如何連接藍(lán)牙設(shè)備相關(guān)的內(nèi)容,本章回中將介紹如何獲取藍(lán)牙連接狀態(tài).閑話休提,讓我們一起Talk Flutter吧。 我們?cè)谏弦徽禄刂薪榻B如何連接藍(lán)牙設(shè)備,但是如何知道藍(lán)牙設(shè)備是否連接成功呢?這就需要我們?nèi)カ@取藍(lán)牙設(shè)備的連接狀態(tài),通過(guò)藍(lán)牙設(shè)備

    2024年02月12日
    瀏覽(22)
  • 第二十八回:如何給PageView添加指示器

    我們?cè)谇懊嬲禄刂薪榻B了PageView這個(gè)Widget,本章回中將介紹 如何給PageView添加指示器 .閑話休提,讓我們一起Talk Flutter吧。 我們?cè)谶@里說(shuō)的指示器表示 PageView 底部的小圓圈,它用來(lái)指示當(dāng)前哪個(gè)頁(yè)面被選中。常用的場(chǎng)景是滑動(dòng)頁(yè)面時(shí)小圓圈高亮顯示當(dāng)前被選中的頁(yè)面,其它小圓

    2024年02月04日
    瀏覽(31)
  • 第一百三十回 Flutter與原生平臺(tái)通信

    我們?cè)谏弦徽禄刂薪榻B了Visibility組件相關(guān)的內(nèi)容,本章回中將介紹 Flutter與原生平臺(tái)通信 相關(guān)的內(nèi)容.閑話休提,讓我們一起Talk Flutter吧。 在移動(dòng)開(kāi)發(fā)領(lǐng)域以Android和IOS SDK開(kāi)發(fā)出的應(yīng)用程序叫原生開(kāi)發(fā),開(kāi)發(fā)同一個(gè)程序需要兩個(gè)平臺(tái)相關(guān)的SDK,有沒(méi)有使用一個(gè)SDK來(lái)開(kāi)發(fā)運(yùn)行于

    2024年02月10日
    瀏覽(18)
  • 第二百三十二回 如何通過(guò)相機(jī)獲取圖片文件

    第二百三十二回 如何通過(guò)相機(jī)獲取圖片文件

    我們?cè)谏弦徽禄刂薪榻B了\\\"如何混合選擇多個(gè)圖片和視頻文件\\\"相關(guān)的內(nèi)容,本章回中將介紹 如何通過(guò)相機(jī)獲取圖片文件 .閑話休提,讓我們一起Talk Flutter吧。 我們?cè)谇懊嬲禄刂薪榻B的選擇圖片或者視頻文件的方式都是通過(guò)文件窗口進(jìn)行的,本章回中將介紹如何通過(guò)相機(jī)獲取圖

    2024年02月20日
    瀏覽(21)
  • 一百三十七、Hive——HQL運(yùn)行報(bào)錯(cuò)(持續(xù)更新中)

    一百三十七、Hive——HQL運(yùn)行報(bào)錯(cuò)(持續(xù)更新中)

    樣例:from_unixtime(unix_timestamp(change_time, \\\'yyyy-MM-dd HH:mm:ss\\\') + green) AS new_timestamp ?成功?。?! 在DWS層中,對(duì)多層SQL使用with語(yǔ)句嵌套查詢(xún),然后insert插入數(shù)據(jù)。如果直接把insert放在with語(yǔ)句上面,那么就會(huì)如下報(bào)錯(cuò) org.apache.hadoop.hive.ql.parse.ParseException:line 2:0 cannot recognize input near \\\'w

    2024年02月15日
    瀏覽(15)
  • 架構(gòu)設(shè)計(jì)內(nèi)容分享(一百三十六):Spring AI 項(xiàng)目簡(jiǎn)介

    目錄 1、概覽 2、Spring AI 的主要概念 2.1、高級(jí)的 Prompt 和 AiResponse 3、Spring AI 入門(mén) 4、Spring AI 實(shí)踐 4.1、在 Spring Boot 中注入 AiClient 4.2、使用 PromptTemplate 配置查詢(xún) 5、Error 處理 6、總結(jié) Spring 通過(guò) Spring AI 項(xiàng)目正式啟用了 AI(人工智能)生成提示功能。本文將帶你了解如何在 Spri

    2024年02月22日
    瀏覽(19)
  • PCL點(diǎn)云處理之pcd文件的讀寫(xiě)(詳細(xì)注釋版)(一百三十三)

    `處理點(diǎn)云數(shù)據(jù)的第一步總是把點(diǎn)云從不同格式的文件讀取到自己的程序里, 存儲(chǔ)點(diǎn)云信息的文件包括但不限于pcd,las,ply,txt等等,由于我們用的是PCL庫(kù)進(jìn)行點(diǎn)云處理,所以最適合的還是pcd格式的點(diǎn)云文件,所以有必要學(xué)習(xí)如何從pcd文件中讀取點(diǎn)云的信息:如坐標(biāo)等,以及如何

    2023年04月18日
    瀏覽(21)
  • C/C++基礎(chǔ)講解(一百三十一)之經(jīng)典篇(信息合并/平均分?jǐn)?shù)存儲(chǔ))

    很多時(shí)候,特別是剛步入大學(xué)的學(xué)子們,對(duì)于剛剛開(kāi)展的計(jì)算機(jī)課程基本上是一團(tuán)迷霧,想要弄明白其中的奧秘,真的要花費(fèi)一些功夫,我和大家一樣都是這么啃過(guò)來(lái)的,從不知到知知,懵懂到入門(mén),每一步都走的很艱辛,課程上,大學(xué)老師基本上講解上機(jī)實(shí)操得時(shí)間特別有

    2024年02月07日
    瀏覽(21)
  • 架構(gòu)設(shè)計(jì)內(nèi)容分享(一百三十三):ES+Redis+MySQL高可用,如何試實(shí)現(xiàn)?

    架構(gòu)設(shè)計(jì)內(nèi)容分享(一百三十三):ES+Redis+MySQL高可用,如何試實(shí)現(xiàn)?

    目錄 背景: ES 高可用方案: ES 雙中心主備集群架構(gòu) ES 流量隔離三集群架構(gòu) ES 集群深度優(yōu)化提升 會(huì)員 Redis 緩存方案: ES 近一秒延時(shí)導(dǎo)致的 Redis 緩存數(shù)據(jù)不一致問(wèn)題的解決方案 Redis 雙中心多集群架構(gòu) 高可用會(huì)員主庫(kù)方案: MySQL 雙中心 Partition 集群方案 會(huì)員主庫(kù)平滑遷移方

    2024年02月22日
    瀏覽(14)
  • Linux圖形管理框架gdm3、lightdm、sddm、kdm介紹(一百三十七)

    1.Gnome系列圖形管理器:gdm、gdm3 Ubuntu默認(rèn)界面管理器:gdm3 2.KDE系列圖形管理器:KDM,SDDM LUbuntu默認(rèn)界面管理器:sddm 3.Canonical公司系列圖形管理器:Lightdm XUbuntu默認(rèn)界面管理器:lightdm 查看當(dāng)前使用的顯示管理器?

    2024年02月12日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包