2015-06-19 77 views
0

我正在寫一個應用程序的筆記爲Android,我有一個RecyclerView顯示所有的音符的網格。每個音符都有一個名爲Note的相應類。Android的 - 加載多個文本文件到一個RecyclerView

的筆記類知道/有:

  • 的文件名(註標題)
  • 的音符
  • 的裝載方法讀取並返回文件
  • 中的文本文件路徑

的recyclerview從注意的ArrayList的讀取。該列表通過掃描App的note目錄中的文件進行填充,併爲每個文件創建一個Note對象。我試圖找到將文本加載到recyclerview的最佳方式,它顯示了筆記的預覽。我想知道是否是最好的方式,或者最不笨的方法來做到這一點。我能想到這樣做的方法是:

  • 負載的每一個音符的內容一次性初始掃描過程中,並將其保存在RAM中的筆記類的字符串,不足之處是非常高的內存使用率隨着音符很多和文本。
  • 在Recylerview的onBindViewHolder方法中加載註釋的文本,但我擔心如果用戶滾動快速瀏覽註釋,並且ViewHolder及其註釋在加載文本之前未綁定,則可能存在問題。
  • 在線程池中加載每個音符的文本,提高性能,但與上面相同。

有沒有最好的方法來做到這一點,或推薦/標準的方式來處理動態加載到recyclerview中的文件?

回答

0

與第一個剛開始時,然後根據需要進行優化。如果他們只是文本文件,他們可能不會佔用太多內存。如果你發現他們佔用太多的內存或採取載入時間太長,你可以看一下策略來解決這個問題,但不要浪費時間優化的東西,你知道它的問題

+0

有一些較老的Android設備,或只有100-200mb免費RAM的預算設備,因此我擔心這裏。 – Polaric

0

你怎麼TACKE問題之前?

我也在做一個同類的APP,我的東西最好的選擇是第二個(在異步maner(使用asynctask,例如)加載filé內容在bindViewHolder),它是像imagem加載器一樣的基本ideia像畢加索或Glide,你可以通過綁定ViewHolder來調用它們。

如果有不好的表現,你可以換異步調用旁邊一個緩存策略。