的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