经过一些研究,我仍然不清楚Android是如何从Firebase下载数据的。Android有很多性能方面的最佳实践,例如使用AsyncTask或Volley,但在做出决策之前,我需要了解Firebase是如何操作的。
更具体地说,Firebase是否在单独的线程中加载数据?当我在FirebaseRecyclerAdapter中下载配置文件(带有一些文本的配置文件图片)时,我想先下载每个配置文件的文本,然后在单独的线程中下载图片。我知道在正常情况下从互联网下载数据时如何做到这一点,但我不知道Firebase已经做了什么。
Firebase的所有操作(网络、磁盘等)都使用一个单独的线程。但是您的回调将始终在主线程上调用,这样您就可以安全地与UI交互。
但是,如果您在回调中执行任何非琐碎的操作,那么(像往常一样)您的工作就是在主线程之外执行这些操作。因此AsyncTask
或IntentService
仍然是合适的方法。