2016-06-08 2 views
1

J'ai une liste dynamique de commandes qui doivent être exécutées. Certains de ces objets de commande doivent être exécutés dans un thread d'arrière-plan et certains d'entre eux doivent être exécutés sur UiThread à mesure qu'ils changent de vue et déclenchent des animations.Solution de nettoyage Android RXJava

Certaines commandes ne peuvent pas être exécutées avant la fin d'une autre commande. Par exemple. C1 déclenche une animation de fondu qui dure 2 sec. C2 déclenche une animation de fondu. => Le délai entre les commandes est dynamique.

Je suis un débutant à RXJava. Ma solution fonctionne mais ne semble pas très élégante.

=> Avant de convertir la liste de commandes en observable, j'ajoute des commandes "Attendre" si nécessaire. La commande wait appelle simplement Thread.sleep (delayInMs). L'observation et l'abonnement fonctionnent tous les deux sur le même fil de fond . L'Observable émet les commandes. Si la commande est une instance de UiCommand , l'abonné envoie l'exécution à l'uiThread sinon il exécute la commande sur le fil d'arrière-plan .

Quelle est la meilleure façon de résoudre ce problème avec RXJava? Je voudrais me débarrasser des messages UiThread et la préparation initiale de la liste. Mais remplacez cela par des fonctionnalités RXJava.

+0

vous devez ajouter votre code, sous la forme actuelle de votre question est trop large –

Répondre