小编Mla*_*jac的帖子

如何在RxJava2中链接两个Completable

我有两个可完成的.我想做以下场景:如果第一个Completable到达onComplete,继续第二个Completable.最终结果将是第二次完成的完成.

当我有单个getUserIdAlreadySavedInDevice()和Completable login()时,我就是这样做的:

@Override
public Completable loginUserThatIsAlreadySavedInDevice(String password) {
    return getUserIdAlreadySavedInDevice()
            .flatMapCompletable(s -> login(password, s))

}
Run Code Online (Sandbox Code Playgroud)

java rx-java rx-java2

38
推荐指数
4
解决办法
2万
查看次数

如何从测试覆盖范围中排除Dagger2类

是否有任何选项可以从Android Studio中的测试覆盖率报告中排除Dagger2类

android jacoco android-testing android-studio dagger-2

16
推荐指数
3
解决办法
4495
查看次数

内部 API 构造函数 DefaultDomainObjectSet(Class<T>) 已被弃用。这计划在 Gradle 7.0 中删除

有没有办法关闭这个警告?当我使用--warning-mode all stacktrace 时,我看到问题来自内部 API。这个错误很烦人,所以我想修复它或关闭警告。

gradle android-gradle-plugin

10
推荐指数
1
解决办法
1039
查看次数

9
推荐指数
3
解决办法
1703
查看次数

Retrofit 2:自定义拦截器的自定义注解

我有用于身份验证的自定义拦截器:

@Named("authInterceptor")
    @Provides
    @Singleton
    fun providesAuthInterceptor(preferencesManager: PreferencesManager): Interceptor {
        return Interceptor { chain ->
            val newBuilder = chain.request().newBuilder()
            newBuilder.addHeader("access-token", preferencesManager.getAccessToken())
            val request = newBuilder.build()
            return@Interceptor chain.proceed(request)
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我有一些不需要 auth 标头的调用。

我希望在我的服务中拥有的是:

interface NetService {
    @NEEDAUTH
    @GET("users")
    fun getAllShops(key: String): Single<SomeResponse>

    @FormUrlEncoded
    @POST("users")
    fun register(@Field("nickname") nickname: String): Single<SomeResponse>
}
Run Code Online (Sandbox Code Playgroud)

因此,第一个调用将使用 authInterceptor,第二个调用将不使用它。

android interceptor retrofit2 okhttp3

9
推荐指数
2
解决办法
3391
查看次数

如何使用exoplayer流式传输MP3网址?

Exoplayer库对我来说似乎很复杂.任何人都可以帮我如何使用exoplayer库流式传输电台网址?我尝试使用MediaPlayer,它工作正常但是花了很多时间来准备.这是我试过的.

    exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT);

    Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
    DataSource dataSource = new DefaultUriDataSource(getApplicationContext(), null, userAgent);
    Mp3Extractor extractor = new Mp3Extractor();
    ExtractorSampleSource sampleSource = new ExtractorSampleSource(
            uri, dataSource, extractor, allocator, BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE);
     MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
    exoPlayer.prepare(audioRenderer);

    exoPlayer.setPlayWhenReady(true);
Run Code Online (Sandbox Code Playgroud)

我不明白如何获得userAgent以及它的含义是什么?

android exoplayer

8
推荐指数
1
解决办法
8978
查看次数

5
推荐指数
1
解决办法
5096
查看次数