延迟加载 ram 内存和对象中的所有数据
lazy load all data in ram memory and objects
我打算从 Internet 加载数据,并在带有 material 设计(带有导航抽屉)的片段中的自定义列表视图中显示它们,现在我正在搜索延迟加载,然后我看到了有关缓存的内容缓存和内部存储中的数据,所以我很困惑,因为我不知道该怎么做,实际上我很害怕,但我有一个想法,因为它是关于加载数据而不保存数据的,所以我决定问问你,将数据加载到Ram(加载到对象而不将其保存到内部存储)对象中是否存在问题。恐怕如果用户在一段时间后浏览该应用程序,应用程序将崩溃
1.
使用 RecyclerView,而不是 ListView 用于列表
2.
如果数据有图像,你必须使用支持加载图像的库,如 Picasso,Glide,......以防止由于缺少 RAM 而导致崩溃
3
你应该添加loadmore功能,例如先加载30个项目,然后你可以加载更多并更新RecyclerView数据
编辑
如果数据量大可以使用后台任务全部下载
完全没问题 除非数据非常庞大,比如列表中有 1000 多个项目。如果您不想离线支持,则不应将此数据保存在磁盘上。
以上仅适用于文本,如果您的数据中有图片(假设 图片网址),您应该将其留给像 Glide, Picasso & UIL 这样的库,它们会处理 内存(RAM) & 磁盘缓存 给你。
大多数情况下预优化是矫枉过正的,不要太担心你没有的问题。
我打算从 Internet 加载数据,并在带有 material 设计(带有导航抽屉)的片段中的自定义列表视图中显示它们,现在我正在搜索延迟加载,然后我看到了有关缓存的内容缓存和内部存储中的数据,所以我很困惑,因为我不知道该怎么做,实际上我很害怕,但我有一个想法,因为它是关于加载数据而不保存数据的,所以我决定问问你,将数据加载到Ram(加载到对象而不将其保存到内部存储)对象中是否存在问题。恐怕如果用户在一段时间后浏览该应用程序,应用程序将崩溃
1. 使用 RecyclerView,而不是 ListView 用于列表
2. 如果数据有图像,你必须使用支持加载图像的库,如 Picasso,Glide,......以防止由于缺少 RAM 而导致崩溃
3 你应该添加loadmore功能,例如先加载30个项目,然后你可以加载更多并更新RecyclerView数据
编辑
如果数据量大可以使用后台任务全部下载
完全没问题 除非数据非常庞大,比如列表中有 1000 多个项目。如果您不想离线支持,则不应将此数据保存在磁盘上。
以上仅适用于文本,如果您的数据中有图片(假设 图片网址),您应该将其留给像 Glide, Picasso & UIL 这样的库,它们会处理 内存(RAM) & 磁盘缓存 给你。
大多数情况下预优化是矫枉过正的,不要太担心你没有的问题。