Firebase慢图像加载

时间:2018-05-07 17:04:27

标签: android firebase firebase-realtime-database firebase-storage picasso

我目前正处于一场斗争中。我已经编写了一个基本的社交媒体应用程序已经有一段时间了,图像加载缓慢。我正在使用毕加索从我的firebase存储中加载图像,而且速度非常慢。

当应用程序启动时,我加载到recyclerview中的帖子只会在我滚动它们时加载,但它们的加载速度相对较快。随着我做更多的事情,切换活动等我的图像将加载越来越慢,直到他们不能加载,我被我的占位符图像困住。

不仅仅是recyclerviews,因为我有一个设置活动来显示用户的凭据,而且我得到了相同的慢速加载图像。这是一些代码。

  eventListener = UserRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.hasChild("username")){
                String Username =  dataSnapshot.child("username").getValue().toString();
                username.setText(Username);
            }
            if (dataSnapshot.hasChild("profileimage")){
                String image = dataSnapshot.child("profileimage").getValue().toString();
                Picasso.get().load(image).placeholder(R.drawable.user_circle2).into(profileImage);
                endListener();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
    }

private void endListener() {
    UserRef.removeEventListener(eventListener);
}

无论用户在应用上有多少活动,文字都会立即加载,但图片会不断加载。

请有人帮忙,或建议一种快速显示图像的替代方法,谢谢。

编辑: 感谢Doug Stevenson告诉我要删除听众,我会这样做吗?

{{1}}

更新: 我已将删除侦听器添加到应用程序中。 我正在手机上调试这个,当然我得到了之前提到的慢图像,我在模拟器上尝试了这个并且图像加载的速度保持不变,我可以切换活动,甚至在我做了很多之后很少的东西,当我切换回我的帖子时,图像都正常加载。任何想法为什么???

我现在也在logcat中收到以下消息:

启动阻止GC Alloc 05-07 19:28:20.493 15034-16164 / com.sender.hp.sender I / art:Alloc并发标记扫描GC释放3(72B)AllocSpace对象,0(0B)LOS对象,3%免费,494MB / 510MB ,暂停384us总计32.059ms 05-07 19:28:20.493 15034-16164 / com.sender.hp.sender W / art:抛出OutOfMemoryError"无法分配带有16777216个空闲字节的48771084字节分配和17MB直到OOM"

我现在认为我的图像占用了记忆,造成了慢速图像显示,并解释了为什么文字仍然可以轻松显现而图像无法显示。在将图像添加到firebase之前,我将尝试压缩图像。

1 个答案:

答案 0 :(得分:0)

虽然不可能确切地知道这些信息究竟是什么导致了缓慢,但几乎可以肯定的是,添加事件监听器而不再删除它们会导致问题随着时间的推移。

如果您不再需要移除某个收听者,它将继续接收在其收听的位置发生的更改。在您的情况下,这也意味着毕加索将继续加载图像。每次添加这样的侦听器而不删除它时,所有先前的侦听器都将仍然接收结果并加载图像。我只能想象,重复这么多次将很快消耗具有移动数据连接的设备上的可用网络带宽。

始终确保删除您不再需要的听众。

相关问题