From dadbf7a3fd20a8e0dc7e0601f30a2f696cc9fc6e Mon Sep 17 00:00:00 2001 From: Administrator <123> Date: Thu, 11 Nov 2021 02:40:05 +0000 Subject: [PATCH] 完成登录接口接入demo --- app/src/main/java/com/duqing/missions/ui/login/view/LoginViewModel.java | 38 +++++++++++++++++++++----------------- 1 files changed, 21 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/duqing/missions/ui/login/view/LoginViewModel.java b/app/src/main/java/com/duqing/missions/ui/login/view/LoginViewModel.java index d963549..d24f341 100644 --- a/app/src/main/java/com/duqing/missions/ui/login/view/LoginViewModel.java +++ b/app/src/main/java/com/duqing/missions/ui/login/view/LoginViewModel.java @@ -8,6 +8,7 @@ import androidx.lifecycle.ViewModel; import com.duqing.missions.R; +import com.duqing.missions.retrofit.AndroidScheduler; import com.duqing.missions.ui.login.data.LoginRepository; import com.duqing.missions.ui.login.data.model.LoggedInUser; @@ -15,6 +16,7 @@ import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; import io.reactivex.observers.DisposableObserver; +import io.reactivex.schedulers.Schedulers; public class LoginViewModel extends ViewModel { @@ -39,28 +41,30 @@ public void login(String username, String password) { // can be launched in a separate asynchronous job Observable<LoggedInUser> result = loginRepository.login(username, password); - result.doOnSubscribe(new Consumer<Disposable>() { - @Override - public void accept(Disposable disposable) throws Exception { + result.subscribeOn(Schedulers.io())//指定网络请求在io后台线程中进行 + .observeOn(AndroidScheduler.mainThread())//指定observer回调在UI主线程中进行 + .doOnSubscribe(new Consumer<Disposable>() { + @Override + public void accept(Disposable disposable) throws Exception { - } - }).subscribe(new DisposableObserver<LoggedInUser>(){ + } + }).subscribe(new DisposableObserver<LoggedInUser>(){ - @Override - public void onNext(LoggedInUser value) { - loginResult.setValue(new LoginResult((new LoggedInUserView(value.getDisplayName())))); - } + @Override + public void onNext(LoggedInUser value) { + loginResult.setValue(new LoginResult((new LoggedInUserView(value.getDisplayName())))); + } - @Override - public void onError(Throwable e) { - loginResult.setValue(new LoginResult(R.string.login_failed)); - } + @Override + public void onError(Throwable e) { + loginResult.setValue(new LoginResult(R.string.login_failed)); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } public void loginDataChanged(String username, String password) { -- Gitblit v1.9.1