iOS电池电量在后台时不会改变

时间:2015-02-13 08:05:50

标签: ios objective-c

您好,我的应用程序中有一个功能,如果他的电池电量低于20%就会通知用户

在我的AppDelegate.m中我有这个(观察者)

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStatut) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
    [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
}

这个空洞是nslog的更新电池电量

-(void)batteryStatut{
    float batteryLevel = [[UIDevice currentDevice] batteryLevel];
    batteryLevel *= 100;
    NSLog(@"Battery lvl changed: %f",batteryLevel);
}

编辑:

完成它在plist中添加UIBackgroundModes,App使用你的位置并且它有效,但它不是最好的方法。

1 个答案:

答案 0 :(得分:1)

如果您希望自己的应用在后台运行,则必须声明您的应用支持后台任务。 为此,您必须在.plist中为UIBackgroundModes注册一个值。

不幸的是,您必须有充分的理由使用后台任务。 喜欢听音乐,位置,voip等... 因此,我猜你将无法在没有脏东西的情况下使用后台任务(比如使用位置来杀死你的app)

有关详情,请查看the doc