// 获得文字控件
private TextView tipView = null;
tipView = (TextView) findViewById(R.id.timeText);
Handler handler = new Handler();
//启动runnable任务
handler.postDelayed(runnable,0);
//每隔1秒钟更新界面
private Runnable runnable = new Runnable(){
@Override
public void run() {
this.update();
//延迟一秒重新运行任务
handler.postDelayed(runnable, 1000);
}
private void update(){
s++;
System.out.println("------------->s="+s);
if(s / 3600 >= 1){
System.out.println("-------------->小时");
//小时数
h = h + 1;
//分钟和秒钟归零
m = 0;
s = 0;
}
if(s / 60 >= 1){
System.out.println("-------------->分钟");
m = m + 1;
s = 0;
}
String str = "总共进行时间:" + h + "小时" + m + "分" + s + "秒|每15分钟自动保存";
tipView.setText(str);
}
};
方法二:开启新的线程 每隔1秒刷新一次控件
private boolean isRun =false;
//线程循环运行
isRun = true;
new Thread(RecorderActivity.this).start();
@Override
public void run() {
while (isRun) {
s++;
System.out.println("------------->s="+s);
if(s / 3600 >= 1){
System.out.println("-------------->小时");
//小时数
h = h + 1;
//减去小时数的秒还剩多少秒
m = 0;
s = 0;
}
if(s / 60 >= 1){
System.out.println("-------------->分钟");
m = m + 1;
s = 0;
}
Message message = Message.obtain();
// 总共进行时间:0小时0分23秒|每15分钟自动保存
String str = "总共进行时间:" + h + "小时" + m + "分" + s + "秒|每15分钟自动保存";
message.obj = str;
handler.sendMessage(message);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//更新UI
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String timeMsg = (String) msg.obj;
tipView.setText(timeMsg);
}
};