我試圖實現一個代碼,以HH:mm:ss
格式顯示當前時間。我設法這樣做了,但似乎還有一段時間滯後於系統時間。代碼在Fragment中實現,如下所示。Android:TextView上的當前時間有時間滯後
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_alarm_list, null);
tvCurrentTime = (TextView) view.findViewById(R.id.tvCurrentTime);
tvCurrentTime.setText("H");
timeHandler.sendEmptyMessage(0);
return view;
}
Handler timeHandler = new Handler() {
public void handleMessage(Message msg) {
runClock();
timeHandler.sendEmptyMessageDelayed(0, 1000);
}
};
private void runClock() {
Calendar calendar = Calendar.getInstance();
tvCurrentTime.setText(String.format("%02d:%02d:%02d",
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
calendar.get(Calendar.SECOND)));
}
時滯似乎在0.5秒到1秒左右。這是我運行該代碼時的屏幕截圖。
嘗試使用TextClock:https://開頭developer.android.com/reference/android/widget/TextClock.html試試這個。 – zerocool