2016-04-17 37 views
0

在做了一些研究之後,我仍然不清楚Android從Firebase下載數據的方式。 Android有許多性能方面的最佳實踐,例如使用AsyncTask或Volley,但我需要了解Firebase如何在運行之前對其進行操作。如何從Android中有效地從Firebase中下載數據?

更具體地說,Firebase是否在單獨的線程中加載數據?當我在FirebaseRecyclerAdapter中下載配置文件(包含一些文本的配置文件圖片)時,我想首先下載每個配置文件的文本,並將圖片下載到單獨的線程中。我知道如何正常從互聯網上下載數據,但我不知道Firebase已經做了什麼。

回答

1

Firebase爲其所有(網絡,磁盤等)操作使用單獨的線程。但是您的回調將始終在主線程上調用,以便您可以安全地與UI進行交互。

但是,如果您在回調中執行任何不平凡的操作,它將(像往常一樣)工作在主線程之外執行這些操作。因此,AsyncTaskIntentService仍然是適當的方法。

+0

謝謝,這很有道理。我不想讓這個話題過於寬泛,所以我只問最後一個問題。 Firebase存儲數據的本地副本,是否意味着它會自動緩存,還是我自己仍然必須這樣做? – TomasKok

+0

Firebase將應用程序具有活動偵聽器的所有數據保留在內存中。如果您分離最後一個位置的偵聽器,則數據將從內存中移除。如果您啓用了磁盤持久性,它還會保留應用程序最近在磁盤上檢索到的所有數據的副本。 –

相關問題