摘要:本文目標本文的目標是使用盡可能少的內容向你展示如何在中使用編寫一個最簡單的異步任務。如果你是初學者可以通過本文以最快的速度開啟你的之旅。相反的我希望本文的作用更加類似于一個快速上手的手冊。新人可以快速上手,老手也可以快速參考。
本文目標
本文的目標是使用盡可能少的內容向你展示如何在Android中使用Rxjava編寫一個最簡單的異步任務。如果你是初學者可以通過本文以最快的速度開啟你的Rxjava之旅。如果你已經接觸過了Rxjava可以將本文作為一篇隨時取用的手冊使用。
開發環境AndroidStudio 2.1.2
CompileSdkVersion 23
BuildToolsVersion 23.0.2
Rxjava 1.1.7
Rxandroid 1.2.1
依賴引用compile "io.reactivex:rxjava:1.1.7" compile "io.reactivex:rxandroid:1.2.1"如何使用
/** * 這是rxjava執行一個異步任務的基礎架子 */ Observable.create(new Observable.OnSubscribe舉個栗子
/** * 在這個栗子中將展示使用rxjava執行一個最簡單的異步任務 * 栗子將會完成如下工作 * 1. 在任務執行前顯示進度條 * 2. 線程休眠1秒,模擬異步任務的執行,然后返回一段字符串作為執行結果 * 3. 關閉進度條,處理異步任務的執行結果 */ private void executeAsyncTask() { //Observable#create方法創建一個異步任務 Observable.create(new Observable.OnSubscribe關于本文() { @Override public void call(Subscriber super String> subscriber) { //在call方法中執行異步任務 try { Thread.sleep(1000); } catch (InterruptedException e) { //注意:如果異步任務中需要拋出異常,在執行結果中處理異常。需要將異常轉化未RuntimException throw new RuntimeException(e); } count++; //調用subscriber#onNext方法將執行結果返回 subscriber.onNext("成功執行異步任務" + count + "次"); //調用subscriber#onCompleted方法完成異步任務 subscriber.onCompleted(); } }) .subscribeOn(Schedulers.io())//指定異步任務在IO線程運行 .observeOn(AndroidSchedulers.mainThread())//制定執行結果在主線程運行 .subscribe(new Subscriber () { ProgressDialog progressDialog; @Override public void onStart() { //在異步任務執行前打開進度條 super.onStart(); Log.i(TAG, "onStart"); if (progressDialog == null) progressDialog = ProgressDialog.show(MainActivity.this, "", "正在執行異步任務"); } @Override public void onCompleted() { //在異步任務執行完成后關閉進度條 Log.i(TAG, "onCompleted"); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } } @Override public void onError(Throwable e) { //如果異步任務執行失敗則關閉進度條,并打印錯誤日志 if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } Log.e(TAG, "onError: execute async task fail", e); } @Override public void onNext(String s) { //處理異步任務的執行結果 Log.i(TAG, "onNext"); tvContent.setText(s); } }); }
目前網上有很多關于rxjava不錯的文章,在后面完也會附上地址。但是本文的目的不是詳細的介紹rxjava的各種特性、最佳實踐、實現原理。相反的我希望本文的作用更加類似于一個快速上手的手冊。新人可以快速上手,老手也可以快速參考。
補充鏈接給 Android 開發者的 RxJava 詳解
Rxjava項目地址
Rxjava官方文檔
本文代碼
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64986.html
閱讀 3222·2021-11-11 16:55
閱讀 2458·2021-10-13 09:39
閱讀 2392·2021-09-13 10:27
閱讀 2155·2019-08-30 15:55
閱讀 3083·2019-08-30 15:54
閱讀 3127·2019-08-29 16:34
閱讀 1819·2019-08-29 12:41
閱讀 1065·2019-08-29 11:33