通过Handler更新时间
时间: 2023-08-10 14:29:04 浏览: 35
可以使用Handler的postDelayed方法来实现定时更新时间。首先,在Activity或Fragment中创建一个Handler对象,并在onCreate方法中调用post方法来更新时间:
```
private Handler mHandler = new Handler();
private TextView mTimeTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTimeTextView = findViewById(R.id.time_text_view);
// 调用post方法更新时间
mHandler.post(updateTimeTask);
}
```
然后,创建一个Runnable对象,在run方法中更新时间,并使用postDelayed方法来定时调用这个Runnable:
```
private Runnable updateTimeTask = new Runnable() {
public void run() {
// 更新时间
updateTime();
// 延迟1秒后再次调用run方法
mHandler.postDelayed(this, 1000);
}
};
private void updateTime() {
// 更新时间TextView
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new Date());
mTimeTextView.setText(time);
}
```
这样就可以实现定时更新时间了。当Activity或Fragment被销毁时,需要调用removeCallbacks方法来停止定时任务:
```
@Override
protected void onDestroy() {
super.onDestroy();
// 停止定时任务
mHandler.removeCallbacks(updateTimeTask);
}
```