即使应用程序被杀死,也要在特定时间调用方法
Posted
技术标签:
【中文标题】即使应用程序被杀死,也要在特定时间调用方法【英文标题】:Call a method in specific time even if app is killed 【发布时间】:2015-07-16 12:38:34 【问题描述】:我正在开发一个仅在上午 8.30 到下午 5.30 运行的应用。我只想在上午 8.30 到下午 5.30 之间存储数据。我使用本地通知这样做。但它只有在用户点击通知时才有效。在上午 8.30 和下午 5.30,即使应用程序被杀死,我也需要执行一些代码。有没有其他机制可以这样做...?
这是我的代码:
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (notification!=nil)
[self application:application didReceiveLocalNotification:notification];
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
code to be executed;
【问题讨论】:
我认为您需要使用静默推送通知来满足此要求。 我的主要问题是在后台收到通知时没有调用 Didlaunch 方法。 你有使用静默推送通知吗? 不!我们可以通过本地通知来做到这一点吗? 不,你不能用本地通知来做到这一点,而且静默推送通知在何时交付到应用程序方面非常不可靠(与非静默推送相比,延迟巨大),如果用户强制退出应用程序,则永远不会发送静默推送。 【参考方案1】:如果应用被终止,则无法在应用中执行方法。您可以使用静默通知在后台启动应用程序。但静默通知更适合新闻应用或需要在后台下载内容的应用,以便在应用进入前台时随时可供用户使用。
除此之外,执行该方法的唯一方法是当它在前台或至少在后台活动时(使用可用的后台模式之一)。如果您的应用使用后台模式只是为了保持在后台,Apple 会拒绝该应用,所以要小心。
【讨论】:
我很感激应用程序无法自行启动并在后台运行任意代码。以上是关于即使应用程序被杀死,也要在特定时间调用方法的主要内容,如果未能解决你的问题,请参考以下文章
我希望 func locationManager(manager: CLLocationManager, didUpdateToLocation 即使在应用程序被杀死后也能被调用?