Android在旋转设备上管理多个请求rxJava

tux*_*rld 8 android rx-java rx-android

我在Android应用程序上使用MVVM,我想在设备轮换时管理请求和rxJava,如何在旋转设备和上次请求后计数后禁用请求?

这是我的简单代码,知道我该怎么做,但我找不到任何关于它的文档和示例代码

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    binding = DataBindingUtil.setContentView(this, R.layout.activity_register);
    ...
    Observer<String> myObserver = new Observer<String>() {
        @Override
        public void onError(Throwable e) {
            // Called when the observable encounters an error
        }

        @Override
        public void onComplete() {

        }

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onNext(String s) {
            // Called each time the observable emits data
            Log.e("MY OBSERVER", s);
        }
    };

    Observable.just("Hello").subscribe(myObserver);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本 rxJava

Dav*_*jak 1

您有以下选择:

  • 使用一些全局单例或您的应用程序类来保存您的逻辑,而不是在您的活动生命周期内
  • 使用在您的活动/应用程序旁边运行的服务
  • 使用装载机

全局状态通常很糟糕,并使您的代码难以测试/调试。服务往往是矫枉过正。

对于设备轮换并从中断处继续的用例,您通常会使用Loader,它会继续轮换运行,并且只有在您离开活动后才会被销毁。

我最近还写了一篇文章,介绍了一种可能的解决方案,即使用 Loaders 和 RxJava来在方向更改期间保持状态。