Android - 将多个文本文件加载到RecyclerView

时间:2015-06-19 22:50:14

标签: android performance file io android-recyclerview

我正在编写Android的笔记应用程序,我有一个RecyclerView来显示所有笔记的网格。每个音符都有一个名为Note的类。

音符类知道/有:

  • 文件名(注释标题)
  • 便笺的文件路径
  • 读取并返回文件内文本的加载方法

recyclerview从Note的ArrayList读取。该列表由App的note目录中的文件扫描填充,并为每个文件创建Note对象。我正在尝试找到将文本加载到recyclerview的最佳方法,它会显示备注的预览。我想知道这是否是一种最好的方式,或者至少是愚蠢的方式来做到这一点。我能想到的方法是:

  • 在初始扫描期间立即加载每个笔记的内容,并将其保存为RAM中笔记类中的字符串,缺点是RAM使用率非常高,有很多笔记和文本。
  • 在Recylerview的 onBindViewHolder 方法中加载注释的文本,但是我担心用户是否非常快速地滚动注释,并且在加载文本之前ViewHolder及其注释未绑定可能是这里的问题。
  • 在线程池中加载每个笔记的文本,提高性能,但问题与上述相同。

是否有最佳方法可以执行此操作,或采用推荐/标准方式处理大量动态加载到Recyclerview中的文件?

2 个答案:

答案 0 :(得分:0)

从第一个开始,然后根据需要进行优化。如果它们只是文本文件,它们可能不会占用太多内存。如果你发现他们确实占用了太多内存或者需要花费太长时间才能加载,你可以查看解决这个问题的策略,但在你知道问题之前不要浪费时间优化一些事情

答案 1 :(得分:0)

你是怎么解决这个问题的?

我也在制作同一种APP,我的东西最好的选择是第二种(在bindViewHolder上加载filé内容)在async maner中(例如使用asynctask),它与像Picasso这样的imagem加载器的BASIC ideia相同或者Glide,你在Bind ViewHolder上打电话给他们。

如果性能不佳,您可以将异步调用与缓存策略一起包装。