Bonjour,
J'ai une exception sur un objet que je manipule au retour d'un timer (Objet accessible uniquement du main thread ( speech recognizer)) et j'essaye avec un delegate de resoudre ce probleme. Mais je galère.
J'ai ma class timer
Ma variable globale dans le mainCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class MyTimerTask extends TimerTask { private AsyncResponse2 delegate = null; public MyTimerTask(AsyncResponse2 p_delegate) { delegate = p_delegate; } public void run() { SpeechReady=false; myTimer.cancel(); myTimer.purge(); delegate.TimeOutRecognizer(); } }
Son initialisation dans le onCreate de mon mainthreadCode:private AsyncResponse2 TimeOutDelegate;
Mon interfaceCode:
1
2
3
4 TimeOutDelegate=this; // Init callback time out speech myTask = new MyTimerTask(TimeOutDelegate);
Code:
1
2
3
4 public interface AsyncResponse2 { void TimeOutRecognizer(); }
la fonction de callback dans le main
et l'implementsCode:
1
2
3
4 @Override public void TimeOutRecognizer(){ ManageRestartListening("On time out"); }
J'ai toujours l'exception qui est levée quand je manipule le speech recognizer dans ma fonction ManageRestartListeningCode:public class MainActivity extends Activity implements AsyncResponse2
J'ai oublié quelque chose ?
Merci