表现
"下列通知失效, 不起作用"
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelDidChange:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStateDidChange:) name:UIDeviceBatteryStateDidChangeNotification object:nil];
环境
iPhone8
ios11
原因
/// 在iPhone 8 + ios11, 会导致电量无法刷新(收不到电量变更通知)
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
});
在后台线程调用了"[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];"会引发此问题.(猜测是苹果系统在特定版本上的缺陷)