2015-10-31 71 views
4

我創建了一個Android應用程序,並且在此應用程序中,用戶可以保存一些任務。這些任務保存在設備中,當用戶上線時,任務將同步到服務器。 我需要知道用戶保存任務時的正確日期和時間。如Calendar.getInstance()new Date()這樣的代碼將返回設備時間,如果設備時間不正確,則任務將保存爲錯誤的日期。此應用脫機工作非常重要。並且因爲這個應用程序的繁茂,有可能用戶有意更改設備時間。 對不起,我的英語不好。如何在設備脫機的情況下爲Android設備獲取正確的當前日期和時間

+0

您需要一臺服務器和一個端點,以便您返回正確的日期,因爲設備只能爲您提供設備時間。 – Varundroid

+0

@Varundroid所以在這種情況下,如果用戶處於離線狀態,他不能保存任務 –

回答

3

因此,我最終以這種情況下,每個設備重新啓動只有一次用戶最多連接到互聯網。

我嘗試連接到一個NTP服務器,當用戶啓動(BOOT_COMPLETED BroadcastReceiver)或網絡狀態改變(CONNECTIVITY_CHANGE and WIFI_STATE_CHANGED BroadcastReceiver),然後我存儲在數據庫中的日期和SystemClock.elapsedRealtime()。之後,當我想要有正確的日期時,我只需獲取新的SystemClock.elapsedRealtime()並計算該值與數據庫中elapsedRealtime值的差異,並將該差異添加到我存儲在數據庫中的日期中。

相關問題