package com.example.smoothdesktop.tools;
import android.os.Handler;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* TimeUpdater 类,用于更新 TextView 中显示的时间
*/
public class TimeUpdater {
private TextView tvCurrentTime; // 当前时间 TextView
private Handler handler; // 用于处理时间更新的 Handler
private Runnable updateTimeRunnable; // 用于在 Handler 中更新时间的 Runnable
/**
* TimeUpdater 构造函数
*
* @param tvCurrentTime 一个 TextView,用于显示当前时间
*/
public TimeUpdater(TextView tvCurrentTime) {
this.tvCurrentTime = tvCurrentTime;
handler = new Handler();
updateTimeRunnable = new Runnable() {
@Override
public void run() {
updateCurrentTime();
handler.postDelayed(this, 1000);
}
};
}
/**
* 开始更新时间
*/
public void startUpdating() {
handler.post(updateTimeRunnable);
}
/**
* 停止更新时间
*/
public void stopUpdating() {
if (handler != null) {
handler.removeCallbacks(updateTimeRunnable);
}
}
/**
* 更新当前时间,并设置到 TextView
*/
private void updateCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
// SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.getDefault());
String currentTime = sdf.format(new Date());
tvCurrentTime.setText(currentTime);
}
}
调用:
使用:
// 时间更新器
TextView tvCurrentTime = findViewById(R.id.tv_current_time);
// 初始化时间更新器并开始更新
TimeUpdater timeUpdater = new TimeUpdater(tvCurrentTime);
timeUpdater.startUpdating();