我下载以这种方式使用火力地堡存储器中的图像:的onComplete的活动破坏后称为FirebaseStorage
StorageReference storageReference = FirebaseStorage.getInstance().getReference();
storageReference.child("images/").child("myimage.jpg").getBytes(Long.MAX_VALUE).addOnCompleteListener(this);
而且我添加了一个侦听器,知道什么时候下载完成:
@Override
public void onComplete(@NonNull Task<byte[]> task)
{
//stuff...
}
当我删除互联网时,会出现问题,请尝试下载图像并销毁活动。这个调用应该被销毁,因为这个活动被破坏了,但是它仍然被存储。事实上,当我激活Internet时,尽管活动被破坏,onComplete方法仍被调用。这最后不是再次创建,我检查所有与日志。那么我怎么能打断这个电话呢?为什么要调用这个方法?
你的方法被调用,因为你保留一个强大的内存引用'Activity'对象在另一个线程,它把它像“完成监听器”。它对于内存来说确实非常糟糕,因为活动不会被垃圾收集。当它被销毁时,你应该从听众中移除活动。 –