我有两个可完成的.我想做以下场景:如果第一个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) 是否有任何选项可以从Android Studio中的测试覆盖率报告中排除Dagger2类
有没有办法关闭这个警告?当我使用--warning-mode all stacktrace 时,我看到问题来自内部 API。这个错误很烦人,所以我想修复它或关闭警告。
真的很烦人.因为匕首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,第二个调用将不使用它。
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以及它的含义是什么?
我只想在一个版本变体中信任证书.怎么做?