Android: можно / рекомендуется ли взаимодействовать с привязанным сервисом из адаптера? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть некоторые сложные данные, моделируемые классом данных, с неизменяемыми и изменяемыми полями:

data class book (
    val ISBN: String,
    val Author: String,
    ...
    var borrowed: Boolean
)

И я пытаюсь найти способ отобразить несколько экземпляров этого в RecyclerView.
Я считаю, что единственное беспокойство Адаптера - отображение данных, однако, передача целой группы объектов не кажется мне действительно разумной, тем более, что не все поля всех экземпляров будут нуждаться

Поэтому я решил использовать список ISBN в качестве DataSet Адаптера и, при необходимости, извлечь соответствующий объект из Связанной службы.

ОднакоЯ не уверен, что это правильный путь, поскольку у Адаптера нет четкого жизненного цикла, и я не могу понять, где можно привязать / отменить привязку к сервису.

Тогда возникает вопрос: ВAndroid-адаптер, где я должен привязаться к Bound Service, чтобы получить данные для отображения?Это что-то вроде ереси дизайна?

1 Ответ

0 голосов
/ 28 мая 2018

Я думаю, вы делаете это неправильно.То, как вы хотите это сделать, на самом деле плохо с точки зрения производительности.
Передача целой группы объектов не кажется вам действительно разумной, но это правильный способ использовать утилиту просмотра для лучшей производительности и избегать странного поведения.

Если вы хотите получить данные из службы:
- инициализировать ваше окно повторного просмотра с пустым набором данных (загрузка ...)
- запустить службу для получения набора данных
- уведомить о своей активностии передайте свой набор данных
- ваша активность поменяет ваш адаптер повторного просмотра с новым набором данных
- ваш повторный просмотрет notifyDataSetChanged () ", чтобы отобразить новый набор данных

...