【问题标题】:Creating iPhone app that runs at startup and every X minutes创建在启动时和每 X 分钟运行一次的 iPhone 应用程序
【发布时间】:2012-09-21 21:43:46
【问题描述】:

我编写了一个 Android 应用程序,现在正在移植到 iPhone。 Android 版本使用广播接收器在设备重新启动时收到通知,并在那时与我的网络服务器进行后台同步。然后它使用警报管理器在 X 分钟内安排另一个通知(X 由用户在我的应用设置中设置),这只是另一个后台同步。

这在 iPhone 上是否可行,我应该查看哪些 API?我在 OSX Mountain Lion 上使用最新的 XCode 版本(我认为是 4.5)进行编程,主要针对 iPhone,但也想要在 iPad 上运行的东西。 iPhone 4 (iOS 5.0) 及更高版本会很好,因为我的大多数客户都有更新的设备。

如果不是很明显,我对 XCode、Mac OS、iOS 和 Objective-C 还是很陌生(仍在尝试使用 Alt-TAB 切换窗口)。

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    这在 iPhone 上是不可能的——它与 Apple 的多任务模型不兼容。如果它有助于理解动机,Apple 的基本立场是,从电池寿命的角度来看,允许应用程序不受限制的后台执行权限将是一个非常糟糕的主意,因为没有切实可行的方法来确保此类应用程序编写得很好。

    如果您想让用户在当前不在线时了解某些内容,您需要在启动时进行同步并使用推送通知。有一些特殊类别的应用程序可以在某些事件(如位置变化、接收 VoIP 呼叫或播放音频内容)时在严格限制的时间段内被唤醒,但该列表是严格且受限的。请参阅this document,特别注意从“实施长时间运行的后台任务”开始的内容。

    【讨论】:

    • 我想 iPhone 用户会收到 Facebook 通知,而无需去点击按钮或运行应用程序来检查它们。这会是您所说的“推送通知”吗?如果是这样,我可以从哪里开始阅读这些内容?
    • 没关系,谷歌搜索“iphone push notifications sdk”找到了几个很好的起点,所以按原样接受这个答案。我认为这些应该可以满足我的需要。
    • 哦,是的——这些是推送通知。您使用 Apple 设置适当的证书,然后将一小部分数据推送到 Apple 服务器。苹果确保交付。这将显示给用户,然后在下次启动时可供您的应用使用。通常,您会包含标题、一些文本和某种 URL,如果需要,您的应用可以从中获取更完整的详细信息。推送数据包故意很小,这样您就不会使用 Apple 的基础架构来分发您的完整有效负载。
    • developer.apple.com/library/ios/#documentation/…(以防万一其他人正在寻找这个)
    猜你喜欢
    • 2019-11-04
    • 1970-01-01
    • 2023-03-24
    • 2014-11-02
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2020-07-05
    相关资源
    最近更新 更多