告诉你一个思想 display.setCurrent(infoForm); 后面不能有什么特别的操作比如  for()
thread.sleep 之类的,虽说这个语句在前面但是后面的代码会影响它显示所以应该这样
    display.setCurrent(infoForm);  启线程前显示屏幕
   thread = new Thread() {public run(){
Thread.sleep(80);
睡好了显示其它屏幕
}

解决方案 »

  1.   

    我把你留言回在这里 总之一句话,display.setCurrent(infoForm);  后面绝对不能有什么繁忙的处理或睡眠,它会等到后面的代码执行完后再显示的,你明白吗,只要避免这点就可正常,代码你写,我只是做个示例不一定符合你的要求
      

  2.   

    public run(){
     display.setCurrent(infoForm); 
    }
    你可这样,不就符合我所说的了吗
      

  3.   

    之所以在另一个线程里面去操作,是因为这个task()是可能堵塞的。所以我们应该把它放到你的新的线程里面去执行。但是你的代码task()并没有new thread()的public void run()里面。因此它还是会堵塞的。当你执行.start()的时候,run里面的方法并不是立刻执行的,它是要由虚拟机去调度的,因此把你的task() display.setCurrent(nextScreen);
    放到run()里面去