如何检测以下代码/线程何时在Blackberry中完成执行:
UiApplication.getUiApplication().invokeAndWait(new Runnable() {
public void run() {
EventInjector.KeyEvent inject = new EventInjector.KeyEvent
(EventInjector.KeyEvent.KEY_DOWN,Characters.ENTER, 0);
inject.post();
inject.post();
}
});
我可以在执行此线程时收到通知,以便我可以启动另一个线程吗? 提前谢谢。
答案 0 :(得分:0)
您需要一个同步块,here是对它如何工作的简短描述。
“休眠”线程必须锁定一个对象,并在其上调用wait()。 另一个线程锁定同一个对象,并发送notify()或notifyAll()来唤醒第一个。
如果你明确地启动线程(不是在这种情况下),你可以简单地在它上面调用join(),并同步等待它完成。
- 编辑:在线程上使用join()
假设您已有一个可运行的对象:
Thread myThread = new Thread(myRunnable);
myThread.start();
doOtherStuff();
myThread.join();
但是如果出现问题,你就会陷入join()调用,因为BlackBerry没有超时的电话。
答案 1 :(得分:0)
通常,join()方法用于确定线程何时完成。调用join()通常会阻塞,因此请小心使用它。
Here是一个参考。