80,351
社区成员
发帖
与我相关
我的任务
分享
if (null == timer) {
if (null == task) {
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
if (null == msg) {
msg = new Message();
} else {
msg = Message.obtain();
}
msg.what = 1;
handler.sendMessage(msg);
}
};
}
timer = new Timer(true);
timer.schedule(task, mlTimerUnit, mlTimerUnit); // set timer duration
}
// Handle timer message
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch(msg.what) {
case 1:
mlCount++;
int totalSec = 0;
int yushu = 0;
if (SETTING_SECOND_ID == settingTimerUnitFlg) {
// second
totalSec = (int)(mlCount);
} else if (SETTING_100MILLISECOND_ID == settingTimerUnitFlg) {
// 100 millisecond
totalSec = (int)(mlCount / 10);
yushu = (int)(mlCount % 10);
} else if (SETTING_10MILLISECOND_ID == settingTimerUnitFlg) {
// 10 millisecond
totalSec = (int)(mlCount / 100);
yushu = (int)(mlCount % 100);
} else if (SETTING_MILLISECOND_ID == settingTimerUnitFlg) {
// 1 millisecond
totalSec = (int)(mlCount / 1000);
yushu = (int)(mlCount % 1000);
}
// Set time display
int min = (int)(totalSec / 60);
int sec = (int)(totalSec % 60);
try{
if (SETTING_SECOND_ID == settingTimerUnitFlg) {
// second(1000ms)
tvTime.setText(String.format("%1$02d:%2$02d", min, sec));
} else if (SETTING_100MILLISECOND_ID == settingTimerUnitFlg) {
// 100 millisecond
tvTime.setText(String.format("%1$02d:%2$02d:%3$d", min, sec, yushu));
} else if (SETTING_10MILLISECOND_ID == settingTimerUnitFlg) {
// 10 millisecond
tvTime.setText(String.format("%1$02d:%2$02d:%3$02d", min, sec, yushu));
} else if (SETTING_MILLISECOND_ID == settingTimerUnitFlg) {
// 1 millisecond
tvTime.setText(String.format("%1$02d:%2$02d:%3$03d", min, sec, yushu));
}
} catch(Exception e) {
tvTime.setText("" + min + ":" + sec + ":" + yushu);
e.printStackTrace();
Log.e("MyTimer onCreate", "Format string error.");
}
break;
default:
break;
}
super.handleMessage(msg);
}
};