Я пытаюсь сделать два запроса, когда пользователь нажимает кнопку. Однако запрос может занять некоторое время.
Когда пользователь находится в режиме сохранения батареи, и экран блокирует его устройство, пока запрос все еще выполняется, запрос не будет завершен и даст исключение тайм-аута сокета.
Я сделал образец проекта, чтобы попробовать это, и вы можете найти его здесь .
Я использую retrofit и RxJava, чтобы выполнить мои запросы следующим образом:
networkFactory.request() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { result -> Log.d("TAG", "The value is this $result") }, { error -> Log.e("TAG", "Ohoh an error ${Log.getStackTraceString(error)}") })
Мой запрос networkFactory ():
fun request(): Observable<Doc> { return service.request(API_KEY) }
со следующим интерфейсом:
@GET("articlesearch.json") fun request(@Query("api-key") apiKey : String) : Observable<Doc>
Я здесь что-то не так?