如何監聽用戶未退出APP但通過Home鍵在手機設置里改變了系統的時間?
用戶雖未退出APP,但是當它按Home鍵退到后台時 ,會調用該方法:
- (void)applicationDidEnterBackground:(UIApplication *)application
在這個方法里我們可以監聽系統的通知:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userChangeClock:) name:UIApplicationSignificantTimeChangeNotification object:nil];
然后在userChangeClock:方法里將用戶手動設置的新時間同步到藍牙設備端
- (void)userChangeClock:(NSNotification *)notify
{
//將更改后的時間同步過去
FDLog(@"呂佳珍", @"用戶手動改變時間", @"將時間同步過去");
[[BleDataManage sharedInstance] sendSetUp_synchronizationTime];
[[BleDataManage sharedInstance] syncTimeZoneRelated];
}
當用戶回到APP后會調用該方法:
- (void)applicationWillEnterForeground:(UIApplication *)application
在該方法里移除對系統通知的觀察
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userChangeClock:) name:UIApplicationSignificantTimeChangeNotification object:nil];
這里有兩個通知UIApplicationSignificantTimeChangeNotification和NSSystemClockDidChangeNotification可供監聽,但后者如果只改變時區不改變時間的話,無法識別到改變;前者無論是改變時區還是改變時間還是二者都進行改變,都能識別得到