2015-04-23 51 views
0

可能是我在這裏問一個愚蠢的問題。使用「applicationSignificantTimeChange」

我最近注意到一個UIApplication的委託方法

- (void)applicationSignificantTimeChange:(UIApplication *)application { 

} 

我想知道什麼將是其實際使用?我們需要處理這個問題嗎?任何人都可以解釋一個iOS應用程序可能發生的情況,我們需要在這裏做一些編碼。

我的應用程序對系統時間非常敏感,這就是我提出這個問題的原因。看到這個API後,我有一種感覺,我錯過了一些東西來處理。

我只是好奇,想知道... :)

感謝, 拉梅什伊爾一

+2

我認爲[文檔](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index。html)幾乎涵蓋了您的問題:_重大時間變化的示例包括午夜到達,運營商更新時間以及更改夏令時。代表可以實現此方法來調整應用程序的任何顯示時間或對時間變化敏感的對象._ – Alladinian

回答

-1

-applicationSignificantTimeChange:是大致相當於UIApplicationSignificantTimeChangeNotification通知。

我有一個自定義日期選擇器控件,突出顯示今天的日期。訂閱此通知可以在午夜更改高亮顯示,或者用戶手動調整時間設置。

0

每iOS上的文檔,這種方法稱爲:

的顯著時間的變化的例子包括午夜的到來, 的由載體時的更新,並且改變到夏令 時間。代表可以實現此方法來調整顯示時間或對時間更改敏感的應用程序的任何對象。在 調用此方法之前,應用程序還會發佈一個 UIApplicationSignificantTimeChange通知,爲感興趣的 對象提供一個響應此更改的機會。如果您的應用目前暫停了 ,則此消息會排隊等待,直到您的應用返回到 的前臺,此時它將被傳送。如果發生多個時間更改 ,則只會傳送最近的一個。當本應被使用的

例子包括:

  • 如果您的應用程序有重複安排的活動,如本地通知,現在是過去的,和你的應用程序應該重新安排一個通知(如每天提醒)。
  • 如果您的應用程序在前面顯示的數據需要正確,即使用戶設置了不好的時間(例如顯示當前葡萄糖讀數或類似的醫療應用程序)。如果葡萄糖監測儀顯示舊的葡萄糖值作爲用戶當前的葡萄糖值,則用戶可能做出錯誤的決定並受傷。

如何迴應此事件取決於您的應用程序。例如,您可以從服務器讀取UTC以查看電話的UTC是否在一定範圍內正確,並採取適當的措施(例如警告用戶或更新實際UTC和電話UTC之間的內部偏移量)。

希望有所幫助。