0
我知道當我的應用程序進入前景時,我可以同步NSUserDefaults。但它不能滿足我的要求,我希望一旦更改了設置包中的設置,我的應用程序的音量可以同時更改,即使它在後臺運行。一旦我更改了設置包中的設置,我的應用程序可以同時獲取更改嗎?
我知道當我的應用程序進入前景時,我可以同步NSUserDefaults。但它不能滿足我的要求,我希望一旦更改了設置包中的設置,我的應用程序的音量可以同時更改,即使它在後臺運行。一旦我更改了設置包中的設置,我的應用程序可以同時獲取更改嗎?
我認爲,你不能量變化時,在後臺運行的應用程序(甚至手動)!!。
但是可以檢測到音量設置改變時應用從使用背景喚醒NSUserDefaultsDidChangeNotification
實施例:
-(void)viewDidAppear:(BOOL)animated{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsSettingsChanged) name:NSUserDefaultsDidChangeNotification object:nil];
}
- (void)viewDidDisappear:(BOOL)animated{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-(void)defaultsSettingsChanged{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([[defaults stringForKey:@"speech"] isEqualToString:@"0"])
{
speech.hidden = YES;
}
}