【问题标题】:NSTimer or NSThread in iOs 4 background modeiOs 4 后台模式下的 NSTimer 或 NSThread
【发布时间】:2011-05-01 20:12:20
【问题描述】:

当我的 iPhone 应用程序进入后台模式时,我必须保留一个 NSThread 或 NSTimer。可能吗 ?我在 info.plist 中启用了后台模式,并按如下方式打开了 readstream 和 writestream ...(我使用的是 UDP)

CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType,kCFStreamNetworkServiceTypeVoIP);

CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);

但是当我的应用程序进入后台并锁定状态时,NSThread 或 NSTimer 没有调用 .那么请建议我如何在iPhone后台锁定状态下实现后台线程?

【问题讨论】:

    标签: iphone ios4 udp nstimer nsthread


    【解决方案1】:

    我也想知道。

    我想每五分钟更新一次我的 CLLocation(当前位置)对象。我知道的唯一方法是使用 NSTimer。

    如果这不可能,你有什么建议?

    【讨论】:

    • 唯一的出路似乎是 startMonitoringSignificantLocationChanges。
    【解决方案2】:

    对于某些应用程序(音频、位置、网络电话),Apple 允许在受支持的设备上使用background execution

    对某些类型的后台执行的支持必须由使用它们的应用程序提前声明。应用程序通过在其Info.plist 文件中包含UIBackgroundModes 键来声明此支持。它的值是一个数组,包含一个或多个具有以下值的字符串:

    audio
    location
    voip
    

    【讨论】:

      【解决方案3】:

      使用UILocalNotification 代替NSTimer,它可以在应用程序处于后台和前台时触发通知。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2011-01-06
        • 1970-01-01
        • 2016-11-23
        • 2013-03-24
        • 2011-09-19
        相关资源
        最近更新 更多