Я работаю на карте.Этот вид карты обновляется с указанием местоположения соответствующих событий при нажатии кнопки.Эта информация о событии получена API-интерфейсом AWS appsyncclient.Однако основной поток пользовательского интерфейса просыпается в среднем примерно через 3 секунды после получения ответа http, как видно из журналов.Это нормально?Может ли основной поток пользовательского интерфейса проснуться быстрее, чем этот?
Вызов API ниже:
public void getEventsList(Consumer<MutableLiveData<ApiResponse>> listConsumer) {
System.setProperty("rx2.io-priority", "" + (Thread.MAX_PRIORITY));
disposables.add(eventSDK.SearchByMyRegion(String.valueOf(eventManager.getCurrentLatLng().latitude), eventManager.getLatitudeDelta(), String.valueOf(eventManager.getCurrentLatLng().longitude), eventManager.getLongitudeDelta())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(d -> {
this.responseLiveData.setValue(ApiResponse.loading());
listConsumer.accept(this.responseLiveData);
})
.doOnEvent((data, throwable) -> {
this.responseLiveData.setValue(ApiResponse.terminate());
listConsumer.accept(this.responseLiveData);
})
.subscribe(event -> {
if (event != null) {
if (event.SearchByMyRegion() != null) {
this.responseLiveData.setValue(ApiResponse.success(event.SearchByMyRegion().stores()));
listConsumer.accept(this.responseLiveData);
}
} else {
this.responseLiveData.setValue(ApiResponse.success(event.SearchByMyRegion().stores()));
listConsumer.accept(this.responseLiveData);
}
}, error -> {
this.responseLiveData.setValue(ApiResponse.error(error));
listConsumer.accept(this.responseLiveData);
}));
Примечание: сетевая библиотека okhttp, AWS appsyncclient используется вместе с RxJava2.
Logcat logs:
**05-20 00:29:58.228 18828-19554/com.test.beta E/test: start of network call**
**05-20 00:29:58.233 18828-19136/com.test.beta D/OkHttp: --> POST https://example.com/graphql http/1.1 (1934-byte body)**
05-20 00:29:58.234 18828-19136/com.test.beta D/RetryInterceptor: Retry Interceptor called
05-20 00:29:58.234 18828-19136/com.test.beta D/AppSyncSigV4SignerInterceptor: Signer Interceptor called
05-20 00:29:59.559 18828-19136/com.test.beta I/RetryInterceptor: Returning network response: success
**05-20 00:29:59.559 18828-19136/com.test.beta D/OkHttp: <-- 200** https://example.com/graphql (1325ms, 43055-byte body)
05-20 00:30:01.811 18828-19045/com.test.beta V/AppSyncOfflineMutationInterceptor: Thread:[388265]: processing Mutations
05-20 00:30:01.812 18828-19045/com.test.beta V/QueueUpdateHandler: Thread:[388265]: Got message to take action on the mutation queue.
Thread:[388265]: Got message to process next mutation if one exists.
05-20 00:30:01.816 18828-19045/com.test.beta V/AppSyncOfflineMutationManager: Thread:[388265]:Persistent mutations queue is EMPTY!. Will check inMemory Queue next
05-20 00:30:01.817 18828-19045/com.test.beta V/AppSyncOfflineMutationManager: Thread:[388265]: In Memory mutations queue was EMPTY!. Nothing to process, exiting
**05-20 00:30:02.256 18828-19136/com.test.beta E/test: response received**