Par défaut Completable
n'est pas chaud. Mais j'ai cas où chaud serait vraiment pouvant être complétée utile: le téléchargement et l'ensemble de la mise en cache de fichiers volumineux:Hot Completable avec des tâches longues
class DownloadManager {
Completable downloadAndCacheA();
Completable downloadAndCacheB();
}
Completable.merge(
downloadManager.downloadAndCacheA(),
downloadManager.downloadAndCacheB()
).subscribe();
Lorsque des fichiers sont grand utilisateur peut quitter l'application et revenir en arrière. Ainsi, le code client peut se désabonner de ces complétables et s'abonner à nouveau. Un fichier peut être téléchargé, mais un autre est toujours en cours. Mais comme Completable
n'est pas chaud, le téléchargement recommence.
Options possibles est à:
- Faire hot Completable.
- Utilisez la fonction d'observation chaude qui renvoie
Object
. - Utilisez simplement
Thread
instance avec leCompletable
personnalisé qui interagissent les uns avec les autres.
N'aiment pas vraiment toutes ces solutions pour des raisons différentes. Existe-t-il un meilleur moyen de prendre en charge des tâches exécutables de longue durée?
Avez-vous regardé [Completable.cache] (http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Completable.html#cache()) et [CompletableSubject] (http : //reactivex.io/RxJava/2.x/javadoc/io/reactivex/subjects/CompletableSubject.html). – akarnokd
@akarnokd merci! Le cache essayé mais probablement d'une manière différente. Regardera à nouveau cache et CompletableSubject. – eleven