Можно ли улучшить производительность взаимодействия PagedList и RecyclerView? - PullRequest
0 голосов
/ 11 октября 2018

В моем приложении для Android я показываю данные в RecyclerView, используя Room и библиотеку подкачки.

Моя реализация очень похожа на пример в AsyncPagedListDiffer документах .

Последовательность действий следующая:

  1. Данные изменены в базе данных
  2. Соответствующий Observer передает изменения в Adapter:

    myLiveData.observe(viewLifecycleOwner, Observer {
        myAdapter.submitList(it)
    })
    
  3. AsyncPagedListDiffer вычисляет разницу и соответственно обновляет список

Моя проблема - снижение производительности на шаге 3.

Даже если я вставлю только один отдельный элемент в начало списка, различия должны проверять все элементов (что довольно неэффективно, особенно сбольшие наборы данных), тогда как простого вызова notifyItemInserted(0) будет достаточно.

Есть ли способ обойти это поведение?

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

Буду очень признателен за любой совет.

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