Android:是否可以/建议从适配器与绑定服务进行交互?



我有一些由数据类建模的复杂数据,具有不可变和可变字段:

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

我正在尝试找到一种方法来在RecyclerView中显示它的许多实例。
我认为适配器唯一关心的是显示数据,但是,传递一大堆对象对我来说似乎并不明智,特别是因为并非所有实例的所有字段都需要显示

因此,我决定使用 ISBN 列表作为适配器的数据集,并在需要时从绑定服务中获取相应的对象。

但是,我不确定这是正确的方法,因为适配器没有明确的生命周期,而且我不知道在哪里绑定/取消绑定到服务。

那么问题就变成了: 在 Android 适配器中,我应该绑定到绑定服务的位置,以便获取要显示的数据?这样做是某种设计异端吗?

我认为你的做法是错误的。就性能而言,您想要的方式确实很糟糕。
传递一大堆对象对您来说似乎并不明智,但这是使用回收器视图以获得最佳性能并避免奇怪行为的正确方法。

如果要从服务中检索数据:
-使用空数据集初始化回收器视图(加载...
- 运行服务以检索数据集 - 通知活动并传递数据集 - 活动 使用新数据集更改回收器视图适配器 - 回收器视图"通知DataSetChanged(("以显示新数据集


最新更新