Элементы, добавленные в RecycleList только в режиме отладки или когда экран заблокирован - PullRequest
0 голосов
/ 13 ноября 2018

Я выполняю поиск и сортировку при запросе данных из API, но результаты не «доходят» до тех пор, пока я не заблокирую экран или не установлю точку останова. Что может быть причиной этой ошибки и является ли это ошибкой вообще. Вот мой код запроса:

fun SearchInServer(SearchString: String): MutableList<SearchResult>{
    val url = "https://mysite/api/search/"+SearchString
    val request = Request.Builder().url(url).build()
    val values = mutableListOf<SearchResult>()

    val client = OkHttpClient()
    // val point
    client.newCall(request).enqueue(object: Callback {
        override fun onFailure(call: Call, e: IOException) {
            println("False")
        }

        override fun onResponse(call: Call, response: Response){
            val body = response.body()?.string()
            val results: List<SearchResult> = Gson().fromJson(body, object: TypeToken<List<SearchResult>>(){}.type)
            results.forEach() {
                Log.v("res:", it.result)
                values.add(SearchResult(it.result, it.type, it.id))

            }
        }
    })
    Log.v("sizee", values.size.toString())
    return values
}

1 Ответ

0 голосов
/ 13 ноября 2018

Видимо, вы делаете асинхронный вызов при поиске, values был возвращен сразу из блока с пустым размером.

В режиме отладки он, вероятно, как-то удобно дал ему достаточно времени для возврата данных. И то же самое произошло, когда вы вернулись с экрана блокировки, ваши просмотры были перерисованы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...