当应用程序处于后台模式时,电池电量通知不起作用

Posted

技术标签:

【中文标题】当应用程序处于后台模式时,电池电量通知不起作用【英文标题】:Battery level notification not working when app is in background mode 【发布时间】:2016-04-28 10:38:46 【问题描述】:

我已实施本地通知来检查电池状态。如果电池电量下降 1%,则会收到本地通知。这适用于两者,即应用程序处于前台或后台,ios 版本低于 9。 当我将设备操作系统更新到 iOS 9 时,我在前台收到本地通知,但无法在应用程序的后台收到通知。 以下是用于实现的代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

// Enable monitoring of battery status

**[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];**

// Request to be notified when battery charge or state changes

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkBatteryStatus) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkBatteryStatus) name:UIDeviceBatteryStateDidChangeNotification object:nil];


- (void)applicationDidEnterBackground:(UIApplication *)application 

        // Request to be notified when battery charge or state changes

    [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

    **[[NSNotificationCenter defaultCenter] postNotificationName:UIDeviceBatteryLevelDidChangeNotification object:nil userInfo:nil];**

    **[[NSNotificationCenter defaultCenter] postNotificationName:UIDeviceBatteryStateDidChangeNotification object:nil userInfo:nil];**



- (void)checkBatteryStatus

    notifyAlarm = [[UILocalNotification alloc] init];

    notifyAlarm.alertBody = @“battery alert";
    notifyAlarm.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] presentLocalNotificationNow:notifyAlarm];
    [self displayNotification];
 

displayNotification 方法中我们显示通知。

我还启用了应用程序的后台模式,即在屏幕截图中显示。

enter image description here

任何帮助将不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:

您已启用后台获取模式,这意味着您的应用可以在后台接收远程通知并执行网络请求。

如果不使用有问题的和 App Store 拒绝的方法,就不可能做你想做的事。 Apple 特别不希望您能够在后台运行您的应用程序,除非您有他们批准的用例之一。

【讨论】:

以上是关于当应用程序处于后台模式时,电池电量通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在 iOS 11.4.1 中处于后台时,静默通知不起作用

当应用程序在后台时,推送通知不起作用

在 ios 中接收推送通知时后台执行不起作用

当应用程序被杀死(非活动)时,点击 Firebase 通知不起作用

Android:当电池电量处于定义水平时做某事

用于在后台检查电池电量的 iOS 应用程序