在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 非阻塞I/O操作
combineLatest
從列表創(chuàng)建一個Observable
RxJava的與眾不同之處
Schedulers
RxJava觀察者模式工具包
總結(jié)
工具
你什么時候使用觀察者模式?
GroupBy
App架構(gòu)
組合Observables
創(chuàng)建Activity類
StartWith
RX - 從.NET到RxJava
處理耗時的任務(wù)
過濾Observables
向響應(yīng)式世界問好
避免阻塞I/O的操作
Join
有且僅有一次
Schedulers-解決Android主線程問題
轉(zhuǎn)換Observables
啟動引擎
我們的第一個Observable
總結(jié)
StrictMode
Debounce
*map家族
創(chuàng)建RecyclerView Adapter
為什么是Observables?
Merge
再多幾個例子
總結(jié)
Buffer
Window
總結(jié)
Timeout
執(zhí)行網(wǎng)絡(luò)任務(wù)
項(xiàng)目目標(biāo)
來到Java世界 - Netflix RxJava
獲取我們需要的數(shù)據(jù)
Observable
過濾序列
非阻塞I/O操作
ZIP
總結(jié)
And,Then和When
觀察者模式
Retrofit
Cast
Skip and SkipLast
微軟響應(yīng)式擴(kuò)展
與REST無縫結(jié)合-RxJava和Retrofit
First and last
RxJava Essentials 中文翻譯版
Switch
ElementAt
總結(jié)
總結(jié)
總結(jié)
Sampling
SubscribeOn and ObserveOn
Subject = Observable + Observer

非阻塞I/O操作

現(xiàn)在我們知道如何在一個指定I/O調(diào)度器上來調(diào)度一個任務(wù),我們可以修改storeBitmap()函數(shù)并再次檢查StrictMode的不合規(guī)做法。為了這個例子,我們可以在新的blockingStoreBitmap()函數(shù)中重排代碼。

private static void blockingStoreBitmap(Context context, Bitmap bitmap, String filename) {
    FileOutputStream fOut = null; 
    try {
        fOut = context.openFileOutput(filename, Context.MODE_PRIVATE);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
        fOut.flush();
        fOut.close();
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally { 
        try {
            if (fOut != null) {
                fOut.close();
            }
        } catch (IOException e) {
            throw new RuntimeException(e); 
        }
    } 
}

現(xiàn)在我們可以使用Schedulers.io()創(chuàng)建非阻塞的版本:

public static void storeBitmap(Context context, Bitmap bitmap, String filename) {
    Schedulers.io().createWorker().schedule(() -> {
        blockingStoreBitmap(context, bitmap, filename);
    }); 
}

每次我們調(diào)用storeBitmap(),RxJava處理創(chuàng)建所有它需要從I / O線程池一個特定的I/ O線程執(zhí)行我們的任務(wù)。所有要執(zhí)行的操作都避免在UI線程執(zhí)行并且我們的App比之前要快上1秒:logcat上也不再有StrictMode的不合規(guī)做法。

下圖展示了我們在storeBitmap()場景看到的兩種方法的不同:

http://wiki.jikexueyuan.com/project/rxjava/images/chapter7_1.png" alt="" />

上一篇:Cast下一篇:Buffer