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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
        }
    }
Ma variable globale dans le main

Code : Sélectionner tout - Visualiser dans une fenêtre à part
private AsyncResponse2 TimeOutDelegate;
Son initialisation dans le onCreate de mon mainthread

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        TimeOutDelegate=this;
 
        // Init callback time out speech
        myTask = new MyTimerTask(TimeOutDelegate);
Mon interface

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public interface AsyncResponse2 {
    void TimeOutRecognizer();
}


la fonction de callback dans le main

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    @Override
    public void TimeOutRecognizer(){
        ManageRestartListening("On time out");
    }
et l'implements

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public class MainActivity extends Activity implements AsyncResponse2
J'ai toujours l'exception qui est levée quand je manipule le speech recognizer dans ma fonction ManageRestartListening
J'ai oublié quelque chose ?
Merci