【问题标题】: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 方法。
  • 你有使用静默推送通知吗?
  • 不!我们可以通过本地通知来做到这一点吗?
  • 不,你不能用本地通知来做到这一点,而且静默推送通知在何时交付到应用程序方面非常不可靠(与非静默推送相比,延迟巨大),如果用户强制退出应用程序,则永远不会发送静默推送。

标签: ios objective-c localnotification


【解决方案1】:

如果应用被终止,则无法在应用中执行方法。您可以使用静默通知在后台启动应用程序。但静默通知更适合新闻应用或需要在后台下载内容的应用,以便在应用进入前台时随时可供用户使用。

除此之外,执行该方法的唯一方法是当它在前台或至少在后台活动时(使用可用的后台模式之一)。如果您的应用使用后台模式只是为了保持在后台,Apple 会拒绝该应用,所以要小心。

【讨论】:

  • 我很感激应用程序无法自行启动并在后台运行任意代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多