【问题标题】:launch/wake iOS app periodically定期启动/唤醒 iOS 应用程序
【发布时间】:2014-11-14 15:54:25
【问题描述】:

我有一个在后台运行的应用程序。我想定期唤醒它:在一天中的预设时间或每 n 小时。这必须在没有用户干预的情况下完成。

我相信由于应用程序在后台运行,NSTimer 将无法工作。如何定期“唤醒”我的应用?

【问题讨论】:

    标签: objective-c ios7 nstimer


    【解决方案1】:

    当然,这是可能的,而且很容易实现。
    该技术称为后台提取。
    它是这样工作的 -
    1) 您要求操作系统在特定时间唤醒/启动您的应用程序。
    2)操作系统决定并定期启动您的应用程序和调用

    -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
    

    3) 你在那里做你的工作,你也可以向用户触发本地推送通知,新数据可用。

    这是一个很棒的article that covers your question

    【讨论】:

    • 确保返回适合完成处理程序的内容。要简洁地获取后台 CPU,它应该是 completionHandler(UIBackgroundFetchNewData);。如果您不返回任何内容,iOS 最终将停止定期唤醒您的应用。
    【解决方案2】:

    您可以合并推送通知;但是,用户必须选择打开通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多