让变化成为计划的一部分

欢迎大家探讨本Blog涉及的所有软件课题。我的Google Talk ID:zhengyun(at)gmail.com。

我最希望软件带给用户的感受是:美好的体验、舒适感、简约、干净...

posts - 32, comments - 8, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
第一,
下面的代码在索爱机型上可以运行,在nokia s60模拟器上也可以运行,唯独不能在nokia 7610上运行,程序会自动退出:

new Thread(this, "Menu thread").start();


必须改写为

Thread thread;
(thread = new Thread(this)).start();

方能在真机上运行。

这种程序自动退出的问题,有时候是因为你根本猜想不到的代码导致的,这时候只能通过二分排除法(不断地注释代码来缩小代码范围)来判定了。

第二,再譬如说,
你的代码中有对double的使用,比如这种代码:

double alpha = (double)Math.abs(i - m_canvasWidth / 2) /
                           (double)m_canvasWidth;


但是,注意一点,CLDC1.1才开始支持Math,“Math functions in java.lang package is available only since CLDC-1.1”。所以,如果你一旦在CLDC1.0的nokia手机上使用,那么,即使你用了try/catch捕获异常,程序也会自动退出。

这时候你也不要惊诧。

第三,
Thread thread;
      (thread = new Thread(this)).start();代码可以运行。
但是Thread thread;
      (thread = new Thread(this, "Menu thread")).start();
就会导致Nokia真机立即退出。
同样,
Thread thread;
          (thread = new Thread(new Runnable()
          {
            public void run()
            {
              m_inputHandler.handleStringInput(input);
            }
          }, "inputHandler")).start();
也会导致立即退出。
以上虽然模拟器可以运行,但是真机是不允许的。

只有注册用户登录后才能发表评论。


网站导航: