1 创建一个线程
//开一个线程继承Thread
public class TimeThread extends Thread {
//重写run方法
@Override
public void run() {
super.run();
// do-while 一 什么什么 就
do {
try {
//每隔一秒 发送一次消息
Thread.sleep(1000);
Message msg = new Message();
//消息内容 为MSG_ONE
msg.what = MSG_ONE;
//发送
handler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
}
2 获取系统时间操作
public static final int MSG_ONE = 1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//通过消息的内容msg.what 分别更新ui
switch (msg.what) {
case MSG_ONE:
//获取到系统当前时间 long类型
long time = System.currentTimeMillis();
//将long类型的时间转换成日历格式
Date data = new Date(time);
// 转换格式,年月日时分秒 星期 的格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 EEE");
//显示在textview上,通过转换格式
timeShow.setText(simpleDateFormat.format(data));
break;
default:
break;
}
}
};
3 调用线程
new TimeThread().start();
//开一个线程继承Thread
public class TimeThread extends Thread {
//重写run方法
@Override
public void run() {
super.run();
// do-while 一 什么什么 就
do {
try {
//每隔一秒 发送一次消息
Thread.sleep(1000);
Message msg = new Message();
//消息内容 为MSG_ONE
msg.what = MSG_ONE;
//发送
handler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
}
2 获取系统时间操作
public static final int MSG_ONE = 1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//通过消息的内容msg.what 分别更新ui
switch (msg.what) {
case MSG_ONE:
//获取到系统当前时间 long类型
long time = System.currentTimeMillis();
//将long类型的时间转换成日历格式
Date data = new Date(time);
// 转换格式,年月日时分秒 星期 的格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 EEE");
//显示在textview上,通过转换格式
timeShow.setText(simpleDateFormat.format(data));
break;
default:
break;
}
}
};
3 调用线程
new TimeThread().start();
本文介绍了一个使用Java实现的简单示例,该示例通过创建自定义线程并利用Handler机制来定时更新UI组件中的系统时间。具体步骤包括:1. 创建一个继承自Thread的类,并重写run方法,在其中通过死循环实现每秒更新消息;2. 定义Handler处理来自线程的消息,并更新UI显示当前时间;3. 启动自定义线程。
4736

被折叠的 条评论
为什么被折叠?



