您的位置:首页 > 其它

JDE4.6上奇怪的timer问题

2009-11-04 16:48 162 查看
原帖地址http://supportforums.blackberry.com/t5/Java-Development/problem-about-Timer/td-p/372342

奇怪的timer问题,timer运行的时候,上边的值怎么也传送不进去.Demo.isrun一直是初始定义的那个值.

JDE4.2下倒是正常的返回了true or false,不知道是什么原因.

import java.util.Timer;
import java.util.TimerTask;
import net.rim.blackberry.api.phone.phonelogs.CallLog;
import net.rim.blackberry.api.phone.phonelogs.PhoneLogListener;
import net.rim.blackberry.api.phone.phonelogs.PhoneLogs;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;

public class Demo extends UiApplication {
public static boolean isrun;
public static void main(String[] args) {
Demo theApp = new Demo();
theApp.enterEventDispatcher();

}
public Demo() {
pushScreen(new testscreen());
}
}
class testscreen extends MainScreen {
public testscreen(){
super();
LabelField title = new LabelField("test",LabelField.ELLIPSIS|LabelField.USE_ALL_WIDTH);
setTitle(title);
final Timer time1 = new Timer();

PhoneLogListener loglisten = new PhoneLogListener(){

public void callLogAdded(CallLog cl) {
System.out.println("first isrun!!!!!!!!!!!="+Demo.isrun);
Demo.isrun = true;
System.out.println("last isrun!!!!!!!!!!!!="+Demo.isrun);
time1.scheduleAtFixedRate(new TimerMainEvent(),100,1000);
}

public void callLogUpdated(CallLog cl, CallLog oldCl) {
System.out.println("&&&&&&&&&&&&&&&&&&&update&&&&&&&&&&&&&&&&&&");
}
public void callLogRemoved(CallLog cl) {
System.out.println("&&&&&&&&&&&&&&&&&&&remove&&&&&&&&&&&&&&&&&&");
}

public void reset() {
System.out.println("&&&&&&&&&&&&&&&&&&&reset&&&&&&&&&&&&&&&&&&");
}
};
PhoneLogs.addListener(loglisten);
}
}
class TimerMainEvent extends TimerTask {
public TimerMainEvent() {

}
public void run() {
System.out.println("run!!!!!!!!!!!!!!!!!!!!!!!!"+Demo.isrun);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: