添加存储库

  • 项目根目录build.gradle添加存储库
allprojects {
    repositories {
        ...
        maven {
            url "https://raw.githubusercontent.com/SJJ-dot/repo/master/repository"
        }
    }
}

rxjava 取消订阅封装。

  • 可自动在生命周期destroy stop pause 时取消
  • 定义key 在自动取消之前存在的key。**注意:**key必须在整个进程中唯一

添加依赖

dependencies {
    ...
    implementation 'com.sjianjun:rxjava-dispose:1.1.0'
    //or androidx
    implementation 'com.sjianjun:rxjava-dispose:1.2.1'
}

示例代码

class MainActivity : AppCompatActivity(),AutoDispose {

    @SuppressLint("CheckResult")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Log.e("test")
        Observable.just("test key")
            .delay(2000, TimeUnit.MILLISECONDS)
            .doOnDispose {
                Log.e("doOnDispose test key")
            }
            .compose(pause("test key", lifecycle))
            .subscribe {
                Log.e(it)
            }
        Observable.just("test key2")
            .delay(10000, TimeUnit.MILLISECONDS)
            .doOnDispose {
                Log.e("doOnDispose test key2")
            }
            .compose(pause("test key"))
            .subscribe {
                Log.e(it)
            }
    }
}

rxjava 协程调度器扩展。拥有更好的并发性能。

实际测试并没有什么卵用……用了协程就不用用Rx了,协程配合flow效果更好。

添加依赖

dependencies {
    ...
    implementation 'com.sjianjun:rxjava-coroutine-scheduler:0.0.9'
}

示例代码。用法与普通的调度器相同

Observable.just("test key2")
    .delay(10000,TimeUnit.MILLISECONDS, CoroutineScheduler.IO)