J'ai besoin de mettre à jour 6 graphiques en temps réel. Je crée donc une file d'attente séparée pour chaque graphique et j'essaie de le mettre à jour avec timer.schedule mais cela ne fonctionne pas vraiment. En particulier, si je commente les appels de chaque timer.chedule et ne laisse que le premier, cela fonctionne bien. Mais même si j'ajoute second timer.chedule (donc seulement 1 et 2 timers) il gèle. Voici le code que j'utilise:Multi-thread sur le thread UI
timer_graph1 = new Timer();
timer_graph1.schedule(new Graph1(), 20, 20);
timer_graph2 = new Timer();
timer_graph2.schedule(new Graph2(), 20, 20);
timer_graph3 = new Timer();
timer_graph3.schedule(new Graph3(), 20, 20);
timer_graph4 = new Timer();
timer_graph4.schedule(new Graph4(), 20, 20);
timer_graph5 = new Timer();
timer_graph5.schedule(new Graph5(), 20, 20);
timer_graph6 = new Timer();
timer_graph6.schedule(new Graph6(), 20, 20);
class Graph1 extends TimerTask {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//add data to the graph and update
mChart1.invalidate();
}
});
}
}
//same structure as for Graph1
class Graph2 extends TimerTask {
}
Pourriez-vous nous suggérer quel est le problème avec cette approche?
Bienvenue dans Stack Overflow, mais pouvez-vous expliquer * ne fonctionne pas vraiment * signifie? – Raptor
En particulier, si je commente les appels de chaque timer.chedule et ne laisse que le premier, cela fonctionne bien. Mais même si j'ajoute second timer.schedule (donc 1 et 2 timer seulement) il se fige. –