1. 程式人生 > >MVP+Retrofit+RxJava+Dagger框架

MVP+Retrofit+RxJava+Dagger框架

MVP和Retrofit還有Dagger的使用和我們平常是差不多的,這裡就不過多的講解了
主要來講解一下RxJava和Retrofit的結合 下面我們來看一下RxJava和retrofit的結合使用,為了使Rxjava與retrofit結合,我們需要在Retrofit物件建立的時候新增一句程式碼addCallAdapterFactory(RxJavaCallAdapterFactory.create()),當然你還需要在build.gradle檔案中新增如下依賴:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

完整的程式碼如下:
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://api.douban.com/v2/")
        .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create()))
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支援RxJava
        .build();

然後我們還需要修改RetrofitService 中的程式碼:
public interface RetrofitService {
    @GET("book/search")
    Observable<Book> getSearchBook(@Query("q") String name,
                                    @Query("tag") String tag, @Query("start") int start,
                                    @Query("count") int count);

可以看到,在原來的RetrofitService 中我們把getSearchBook方法返回的型別Call改為了Observable,也就是被觀察者。其他都沒變。然後就是建立RetrofitService 實體類:
RetrofitService service = retrofit.create(RetrofitService.class);

和上面一樣,建立完RetrofitService ,就可以呼叫裡面的方法了:
Observable<Book> observable =  service.getSearchBook("Hello", null, 0, 1);

其實這一步,就是建立了一個rxjava中observable,即被觀察者,有了被觀察者,就需要一個觀察者,且訂閱它:
observable.subscribeOn(Schedulers.io())//請求資料的事件發生在io執行緒
          .observeOn(AndroidSchedulers.mainThread())//請求完成後在主執行緒更顯UI
          .subscribe(new Observer<Book>() {//訂閱
              @Override
              public void onCompleted() {
                  //所有事件都完成,可以做些操作。。。
              }
              @Override
              public void onError(Throwable e) {
                  e.printStackTrace(); //請求過程中發生錯誤
              }
              @Override
              public void onNext(Book book) {//這裡的book就是我們請求介面返回的實體類    
              }
           }

在上面中我們可以看到,事件的消費在Android主執行緒,所以我們還要在build.gradle中新增如下依賴:
compile 'io.reactivex:rxandroid:1.2.0'

這樣我們就引入了RxAndroid,RxAndroid其實就是對RxJava的擴充套件。比如上面這個Android主執行緒在RxJava中就沒有,因此要使用的話就必須得引用RxAndroid。

相關推薦

MVP+Retrofit+RxJava+Dagger框架

MVP和Retrofit還有Dagger的使用和我們平常是差不多的,這裡就不過多的講解了 主要來講解一下RxJava和Retrofit的結合 下面我們來看一下RxJava和retrofit的

Android 教你一步步搭建MVP+Retrofit+RxJava網路請求框架

之前公司的專案用到了MVP+Retrofit+RxJava的框架進行網路請求,所以今天特此寫一篇文章以做總結。相信很多人都聽說過MVP、Retrofit、以及RxJava,有的人已經開始用了,有的人可能還不知道這是什麼,以及到底怎麼用。不過沒關係,接下來我將為你一一揭開他們的神祕面紗,然後利用這三個傢伙搭建

Android ,MVP+retrofit +rxjava+glide recyclerview使用詳解 ,條目點選 長按點選,三種管理器 ,分割線

首先是對應的依賴  implementation 'com.android.support:recyclerview-v7:26.1.0' 下面是對應的介面卡 裡面對應的 有點選的註釋 public class HomeAdaper extends RecyclerV

MVP+Retrofit+dagger2+RxAndroid框架整合

1. MVP模式:主要實在傳統的MVC模式上新增了一層presenter,作為View與Model互動的中間紐帶,處理與使用者互動的負責邏輯。 2. Retrofit:是Square公司開發的一款針對Android網路請求的框架,Retrofit2底層基於OkHttp實

使用MVP+Retrofit+RxJava實現的的Android Demo (上)使用Nuclues庫實現MVP

最近寫了一個 Android 小 Demo,使用基於Nucleus庫的MVP框架進行程式碼分割,並Retrofit和RxJava進行資料請求和處理,下面通過Demo程式碼分享下這幾種技術的使用方法。 需求 從網路Api獲取Json格式的笑話資料,通過列表

簡單實用的mvp+retrofit+rxjava+dagger2

如今android最為流行的網路請求框架莫過於retrofit+rxjava,網上也是誕生了大量mvp+retrofit+rxjava的相關技術文章,但他們的要麼太過於複雜要麼針對性太強,讓很多人用到一半就放棄了,本人也是初學者,參考了很多技術牛人寫的例子,大家一起交流學習

簡單實現斷點續傳+MVP+Retrofit+RxJava

依賴: compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.s

android中mvp+retrofit+rxjava處理mvp記憶體洩漏整合的demo

程式碼如下:專案結構:至於mvp的原理,v層抽象出介面,供P層呼叫,M層進行資料處理,抽象出介面,供P呼叫,P層中可拿到M和V 的介面引用,進行方法呼叫等邏輯處理,再利用介面回撥的方式將解析好的資料返回給V層,這樣就打到M層不直接和V層打交道,實現解耦和的效果mvp模式會存在

Retrofit+Rxjava+MVP網路請求框架

導言: 之前有套基於MVP的網路請求框架,是okhttp封裝的,後來由於retrofit,rxJava的流行,所以更改一部分來使用 釋義: retrofit:基於okhttp再次封裝的網路請求框架 rxjava:非同步工具庫,handler+thread->asyctask-&

Android Retrofit+Rxjava+MVP三大框架整合

Retrofit的詳解 retrofit是基於okhttp的封裝工具類,功能十分豐富.我能力還是有限,在這裡先說下它的使用吧! 簡單使用 新增Gradle依賴項 compile 'com.squareup.retrofit2:retrofit:2

從0開始搭建rxjava+retrofit+mvp+dagger2整合基礎框架rxjava+retrofit網路層搭建)

古語有云,沒有規矩,就不成方圓。其實做什麼事都一樣,做什麼事都要有自己熟悉且大家都認同的一套規矩,這樣既能提高自己的做事效率,也方便他人的理解。在移動開發中,mvp是新興的一種軟體開發模式,是經過時間的考驗並且大家都認同的解耦框架。它不僅能讓我們的程式碼邏輯更加清晰,不同層間分工不同又相互協作,服務於我們的專

android MVP + dagger2 + Retrofit + Rxjava+okhttp android基礎專案框架搭建(2)--之MVP引入

上一篇文章中,我們已經成功的引入了Dagger2;今天我們將繼續使用android MVP模式對程式碼進行實現。#1 將MainActivity.java檔案移動到ui包下,並在ui包下建立view包; view包下存放介面。包及類結構如圖  2 新建presenter包,

Mvp Retrofit Okhttp Rxjava

extend fin 添加 okhttp3 bind item .get 關聯 osi MainActivity package com.bwie.shexinhai; import android.os.Bundle; import android.support

Android MVP開發模式及Retrofit + RxJava封裝

程式碼已上傳到Github,因為介面都是模擬無法進行測試,明白大概的邏輯就行了! 歡迎瀏覽我的部落格——https://pushy.site 1. MVP模式 1.1 介紹 如果熟悉MVP模式架構的話,對下圖各元件的呼叫關係應該不陌生: 和其他傳統模式相比,MVP有以下的幾個特點:

微閱是一款使用 MVP + Retrofit2 + Rxjava + dagger2 等框架開發的閱讀軟體。包括新聞、視訊、煎蛋三個模組,專案的大部分功能已經完成

WeiYue 專案地址:Will-Ls/WeiYue  簡介:微閱是一款使用 MVP + Retrofit2 + Rxjava + dagger2 等框架開發的閱讀軟體。包括新聞、視訊、煎蛋三個模組,專案的大部分功能已經完成 更多:作者   提 B

dagger2,Retrofit,Rxjava,mvp最佳實踐

原料: dagger2Version = "2.5" rxjava2Version = "2.0.1" okhttp3Version = "3.6.0" gsonVersion = "2.8.0" 配置: // compile("com.squareup.retrof

框架】之Retrofit+RxJava的使用

前幾天分別對Retrofit和RxJava進行了總結,這個帖子打算把Retrofit結合RxJava使用的方法總結以下。有還不瞭解Retrofit或RxJava的朋友可以參考下面的帖子學習~ 首先匯入依賴: dependencies { compile fi

仿京東app,採用元件化開發 ARouter + mvp + dagger2 + rxjava + retrofit + fresco 架構

# JD-Test 仿京東app 採用元件化架構 螢幕適配方案可以較好解決多解析度及同分辨率不同dpi適配;### 宣告 : 本專案資源採用抓包獲取,僅供學習交流使用 。 話說一切沒有gif圖的專案都是耍流氓,上圖: 本專案為仿京東專案,資源為抓包獲取,專案框架採用路由框

最新Retrofit + RxJava + MVP

此處搭建的框架是目前最新版本,專案今天剛搭建好,(^__^) 嘻嘻……。 先擼上包: compile ‘com.jakewharton:butterknife:8.6.0’ compile ‘com.jakewharton:butterknife-

Retrofit+RxJava+MVP+網路請求多次判斷

//依賴 compile 'io.reactivex.rxjava2:rxjava:2.1.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2: