gpt4 book ai didi

iphone - 当当前时间等于日出时间时触发警报,即使应用程序在后台

转载 作者:行者123 更新时间:2023-11-28 22:47:11 25 4
gpt4 key购买 nike

在我的应用程序中,我使用 CLLocation 管理器来查找当前位置。根据当前位置,我想获得我所在位置的日出和日落时间。

例如:如果当前位置是旧金山,那么日出时间和日落时间就是旧金山的时间。至此我成功了。但是我想每天在当前时间等于日出时间时触发警报,即使我的应用程序在后台也是如此。

我找了很多方法,但没有一个让我满意。我是 iOS 开发的新手。

applicationDidEnterBackground 方法在终止应用程序之前运行一段时间。

最佳答案

您可能希望在 plist 中设置后台定位模式,使其即使在后台也能响应位置更新。然后在位置更新回调中获取日落时间并在该时间安排本地通知。

此外,最好管理通知并禁用不适当的通知(更改位置 = > 新通知)。

更新:在您的特定情况下,不需要连续的位置数据流,重要的位置变化跟踪就可以了。这种方法不需要 plist 中请求的后台定位模式,也不会以光速耗尽电池。您可以在这里找到信息:- (void)startMonitoringSignificantLocationChanges .请注意,即使使用后台定位模式,应用程序也不会在后台持续运行,它只会被调用以执行位置更新回调。

所以一开始你:

[locationManager startMonitoringSignificantLocationChanges];

然后在位置更新回调你:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
// check location
// get time of sunset

// schedule UILocalNotification
}

刚刚为您找到了一篇文章:Setting a reminder using UILocalNotification in iOS 4. Objective-C.还要检查这个:Executing code in background +schedule alarm on date

关于iphone - 当当前时间等于日出时间时触发警报,即使应用程序在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12911719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com