存档

2009年10月 的存档

10

今天看到 wordpress有专门的 blackberry客户端.就赶紧下下来发篇文章试试.
虽然还未正式发布,但功能已经相当完善.可以读取已经发布的文章. 发布文章时可以选择分类,加tag,甚至还可以加图片.编辑完可以先保存在本地的草稿箱中待以后上传. 可以说功能是非常强大了 .而且项目还是开源的.有兴趣的tx可以阅读项目的源代码.
目前发现的一个问题是标题不支持自动图文集.导致我的 autotext五笔不能正常输入.只能到正文输入然后再贴过去 …

,

08

今天在用BlackBerry的Native UI库写BTalk界面时,遇到一个莫名其妙的异常:”UI engine accessed without holding the event lock”,看代码看了半天没搞清哪里抛出来的。
后来去网上查了一下,发现原来是由于BlackBerry的UI架构中避免多线程竞争等情况的一个机制引起的异常。BlackBerry中限定在同一时间内,只能有一个线程对UI执行更新操作,并且这个线程默认就是UiApplication子类的主线程。而其它线程如果直接试图修改UI,就会引起这个异常。
后来又在一个大牛的BLOG(http://rob.wemakewebsites.co.nz/index.php?p=39)上找到一个非常简单的解决方案。如果需要在非主线程中更新UI,则可以先請求Block主线程的执行,获取UI的控制权,然后更新UI,再释放控制权。大概形式如下:


synchronized (UiApplication.getEventLock()) {

   doSomethingWithUI();

   blablabla();

}

同时注意在synchronized块中不应该出现wait之类的会导致死锁的情况,所以使用应该小心。不过这个方法相对网上的很多其它通过在請求队列加入UI更新請求的方法来说,还是方便很多。至于效果和负作用,则看以后测试的情况了。

,