2017-04-24 17 views
0

我需要創建兩個時鐘 - 一個運行在網絡時間之外,另一個是設備硬件的本地時鐘,因此如果要從設備上拔下/取出電池,請將其保留一小時,然後然後再打開它,網絡時鐘將同步到網絡並顯示正確的時間,但硬件時鐘將需要重置(可能通過使用此網絡時間)。Android的TextClock小部件是否使用網絡?

我的問題

我一直在尋找到Android的TextClock小部件,我想我可以用它的這兩個時鐘的例子之一,但我無法找到任何文件說小部件如何得到它的時間。

任何人都可以提供幫助,並可能提出一個替代方案(如網絡時鐘,如果這是硬件,反之亦然)?

回答

1

source code

private void onTimeChanged() { 
    mTime.setTimeInMillis(System.currentTimeMillis()); // mTime is a Calendar 
    setText(DateFormat.format(mFormat, mTime)); 
    setContentDescription(DateFormat.format(mDescFormat, mTime)); 
} 

這是硬件的時間。您可能想要查看this answer獲取網絡時間的方法。

0

TextClock,如明顯從source code,只需預訂系統時鐘特定廣播(即,ACTION_TIME_TICKACTION_TIME_CHANGEDACTION_TIMEZONE_CHANGED),然後使用系統時間(System.currentTimeMillis())來更新其值。

你可能需要的是一個NTP同步。您可以使用this現成的客戶端。有一個Google public NTP server可在time.google.com

相關問題