ok alors je suis cette configuration: un midletJ2ME MIDlet double fil n'a pas callback
Gui extends Midlet{
private static Gui instance;
protected void startApp() {
Display.getDisplay(this).setCurrent(MyForm.getInstance());
}
private static final Logger log = LoggerFactory.getLogger();
public static Datacheck getInstance() {
return instance;
}
public Gui() {
// Configure logging
}
protected void startApp() {
instance = this;
Display.getDisplay(this).setCurrent(MyForm.getInstance());
}
protected void pauseApp() {
}
protected void destroyApp(boolean bool) {
// Shutdown Microlog gracefully
LoggerFactory.shutdown();
notifyDestroyed();
}
public static void log(Level level, String message) {
log.log(level, message);
}
public void requestScreen(Form screen) {
log.info("request screen called");
Display.getDisplay(this).setCurrent(screen);
}
}
une forme
MyForm extends Form{
private static MyForm instance;
public static MyForm getInstance() {
if (instance == null) {
instance = new MyForm();
}
return instance;
}
private Form(){
//start task
new Timer().scheduleAtFixedRate(new PollingService(CallsDialog.getInstance()), 0, UPDATE_INTERVAL);
//add gui elements ....
}
private void updateForm() {
//never gets executed
}
}
et un fil
MyThread implements Runnable{
private MyForm handle;
public PollingService(MyForm handle) {
this.handle = handle;
}
public void run() {
handle.updateForm();
}
}
de sorte que le midlet commence , définit sa forme sur une instance de MyForm puis myform crée un nouveau thread ce fil doit appeler une fonction du myform toutes les 5 secondes
ceci est un exemple fortement simplifié de la chose réelle alors s'il vous plaît, ne changez pas la conception de fil
maintenant quand j'exécute une méthode de la " MyForm " je ne reçois aucune erreur
modifier changé donc il n'y a pas de fil créé (déjà fait par TimerTask)
essayez de mettre SOP et impression stacktrace dans la capture, essayez de débogage, le code semble OK. –