パブリック クラス MainActivityは延びAppCompatActivity { @SuppressLint( "CheckResult" ) 保護された ボイドのonCreate(バンドルsavedInstanceStateを){ スーパー.onCreate(savedInstanceState)を、 setContentView(R.layout.activity_main)。 ApiClient.retrofit()を作成(ApiStores。クラス).loadDataByRetrofitRxJava( "101220602" ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(新たなオブザーバー<MainModel> (){ @Override パブリック 無効onSubscribe(使い捨てD){ (Log.wを "输出:"、 "连接" )。 } @Override 公共 ボイドonNext(MainModel mainModel){ Log.w( "输出:"、 "" + 。mainModel.getWeatherinfo()getCity())。 Log.d( "输出:"、 "観察者スレッドがある:" + 。にThread.currentThread()のgetName())。 } @Override 公共 ボイドのonError(ThrowableをE){ Toast.makeText(MainActivity。この、 "登录失败" 、 } @Override 公共 ボイドonCompleteの(){ Toast.makeText(MainActivity。この、 "登录成功" 、Toast.LENGTH_SHORT).SHOW(); } })。 } パブリック インターフェイスApiStores { // baseUrlに 文字列API_SERVER_URL = "http://www.weather.com.cn/" 。 // 加载天气 @GET( "ADAT / SK / {cityId}の.html" ) 観測 <MainModel> loadDataByRetrofitRxJava(@Path( "cityId" )文字列cityId)。 } }
Mainメソッド
パブリック クラスApiClient { パブリック 静的補強mRetrofit。 パブリック 静的レトロフィットレトロフィット(){ 場合(mRetrofit == NULL ){ OkHttpClient.Builderビルダー = 新しいOkHttpClient.Builder()。 builder.readTimeout( 5 、TimeUnit.SECONDS)。 builder.connectTimeout( 5 、TimeUnit.SECONDS)。 もし(BuildConfig.DEBUG){ // ログイン信息拦截器 HttpLoggingInterceptor loggingInterceptor = 新しいです HttpLoggingInterceptor()。 loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY)。 // 设置デバッグログ模式 builder.addInterceptor(loggingInterceptor)。 } OkHttpClient okHttpClient = builder.build()。 mRetrofit = 新しいRetrofit.Builder() .baseUrl(MainActivity.ApiStores.API_SERVER_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .client(okHttpClient) .build(); } リターン mRetrofit。 } }
新しいクラス
パブリック クラスMainModel { パブリック 静的WeatherinfoBean getWeatherinfo(){ 戻り 新しい)(WeatherinfoBeanします。 } パブリック 静的 クラスWeatherinfoBean { プライベート文字列の都市; パブリック文字列getCity(){ 戻り都市; } 公共 ボイドsetCity(文字列市){ この .city = 都市。 } } }
実装'io.reactivex.rxjava2:rxjava:2.2.9' 実装 'io.reactivex.rxjava2:rxandroid:2.1.1' // 改造 実装'com.squareup.retrofit2:改造:2.6.0' // Gsonコンバータ の実装'com.squareup.retrofit2:コンバータ-gson:2.6.0' // rxJava2アダプタの 実装"com.squareup.retrofit2:アダプター-rxjava2:2.3.0" // okhttp 実装「com.squareup.okhttp3:okhttp:3.12。 0' 実装 'com.squareup.okhttp3:ログ・インターセプター:3.9.1'
直接依存同期とbuild.grideにコピー