的onComplete的活动破坏后称为FirebaseStorage

我下载以这种方式使用火力地堡存储器中的图像:的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方法仍被调用。这最后不是再次创建,我检查所有与日志。那么我怎么能打断这个电话呢?为什么要调用这个方法?

回答:

考虑使用StorageReference.html#getFile方法,以便您可以取消FileDownloadTask。

比方说,你打电话让你的来电中onCreate(),并希望在onDestroy()方法取消,

/** 

* reference to the download file task

*/

FileDownloadTask downloadTask;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// get the StorageReference to the images folder

StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("images/");

// create the download file task

downloadTask = storageReference.getFile(new File("myimage.jpg"));

// this activity should also implement OnCompleteListener<FileDownloadTask.TaskSnapshot>

downloadTask.addOnCompleteListener(this);

}

@Override

protected void onDestroy() {

if (downloadTask != null) {

downloadTask.cancel();

downloadTask = null;

}

super.onDestroy();

}

在文档此处了解详情:
https://developers.google.com/android/reference/com/google/firebase/storage/StorageReference
https://developers.google.com/android/reference/com/google/firebase/storage/FileDownloadTask
https://developers.google.com/android/reference/com/google/firebase/storage/FileDownloadTask.TaskSnapshot

希望这有助于。

回答:

任务API有你的背部:使用addOn[...]Listener(Activity, On[...]Listener)变体。然后,该活动的onStop()方法中的听众将被自动删除。对于你来说,它应该是这样的:

...addOnCompleteListener(this, this); 

这里是documentation.

以上是 的onComplete的活动破坏后称为FirebaseStorage 的全部内容, 来源链接: utcz.com/qa/266012.html

回到顶部