即使应用程序被杀死,也要在特定时间调用方法

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 即使在应用程序被杀死后也能被调用?

Firebase:即使应用退出,也要监听 ChildEventListener

当应用程序被杀死/关闭时,世博会通知不会触发方法

java的notify方法为啥也要同步

从后台被杀死的应用程序中恢复 - 重新启动时调用哪些方法?

即使在异常终止时,如何确保调用 UnhookWindowsHookEx?