Мой код:Android RxJava2: как настроить правильный асинхронный наблюдаемый потребительский REST API?
RestClient client = new RestClient();
Disposable subscribe = client.getApiMovie().getTopRated()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> { Log.d("mytag", data.body().toString()) });
Является ли этот код правильно. PS: Я использую Android Studio 2, как я могу настроить его, чтобы использовать выражение лямбда?
мой RestClient конструктор:
//what adapter shall I use?
public RestClient(){
if(client == null) {
client = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(getHttpClient())
.build();
}
}
build.gradle:
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
applicationId "com.example.username.sunshine.app"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
синтаксис Lambda теперь должен работать, добавив jackOptions и compileOptions
Я использую RxJava 2, и когда я пытаюсь написать RxJava (CallAdapterFactory), единственный намек, который я получил из Android Studio 2, - это RxThreadFactory, RxAndroidPlugins и RxJavaPlugins, поэтому я полагаю, что у меня нет этого RxJavaCallAdapterFactory , это возможно? – Donovant
Я обновил свой ответ. –
Используя RxJava2CallAdapter, я получаю это: 'com.jakewharton.retrofit2.adapter.rxjava2.HttpException: HTTP 404 Not Found' – Donovant