Ticker的问题,
我用ticker做了一个现在时间的效果,
在CLDC自带的模拟器上运行没问题,
但是在S40的SDK下运行它每更新一次时间Ticker就刷新了一次,
请问怎么解决
代码是这个
public void run(){
Calendar ca = Calendar.getInstance();
Date date;
while(true){
date = new Date();
ca.setTime(date);
String hour = String.valueOf(ca.get(Calendar.HOUR_OF_DAY));
String min = String.valueOf(ca.get(Calendar.MINUTE));
String sec = String.valueOf(ca.get(Calendar.SECOND));
String time = hour + ":" + min + ":" + sec;
ticker.setString(time);
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
});
th.start();
------解决方案--------------------
用个定时器去做吧,。。。。。
Timer s = new Timer();
s.schedule(new TimerTask() {
public void run() {
Calendar ca = Calendar.getInstance();
Date date;
String hour;
String min;
String sec;
String time;
while (true) {
date = new Date();
ca.setTime(date);
hour = String.valueOf(ca.get(Calendar.HOUR_OF_DAY));
min = String.valueOf(ca.get(Calendar.MINUTE));
sec = String.valueOf(ca.get(Calendar.SECOND));
time = hour + ":" + min + ":" + sec;
ticker.setString(time); }
}
}, 1000);
------解决方案--------------------是指调用 ticker.setString(time); 方法时,ticker又头开始走了吗?如果有这问题那就没办法,只能考虑自己实现ticker
------解决方案--------------------你这run是TimeTask的run么?
应该new一个TimeTask,TimeTask的run做2件事
获取当前时间
刷屏
用timer去schedule这个TimeTask,没1分钟执行一次
你先看看api吧