索爱手机白屏重启的一个原因

来源:互联网 发布:淘宝买药提交需求以后 编辑:程序博客网 时间:2024/04/29 05:17

在开发索爱手机的J2ME程序时, 有时并不是只有内存泄漏问题会导致手机白屏或重启, 因为手机本身虚拟机实现上的缺陷而导致的重启现象也很多。

请看下面的代码

String obj = "todo";

boolean pause = false;

new Thread(new Runnable() {
 public void run() {
  while (true) {
   if (pause) {
    try {
     obj.wait();
    } catch (Exception e){}
   }
  }

 }

}).start();


public void wakeup() {
 obj.notify();
 pause = false;

}

public void pause() {

 pause = true;

}


当pause为true时, 线程会暂停在obj上,因为Java中String是对象。所以可以让一个线程去wait在这个对象上。等待其它线程去wake up。这些代码在模拟器上,和Nokia N81上都没问题。 可是在索爱k800i的机器上就立刻白屏重启。而且听说网上有论坛专门讨论过这个问题,确实在索爱的手机上存在。希望索爱手机在将来能更完善一下。 
对于这个问题解决方法就是换成一个非基本数据类型的对象。比如你自己new 一个自定义类的引用。