设置一个运行IOS应用程序生命周期的计时器

时间:2012-07-13 00:46:23

标签: objective-c ios delegates timer

我正试图想办法让一个计时器从安装应用程序时开始,即使应用程序在后台也能继续运行。我基本上是使用定时器来定期检查连接到手机的外部设备的电池寿命。我被告知,最好的方法是使用某种代理调用函数来调用计时器函数,但我对IOS还是比较新的,我对如何做到这一点非常困惑。我知道如何设置计时器并获得电池寿命,但我对如何让计时器在应用程序的生命周期中保持困惑感到困惑。您可以给予任何帮助,我将非常感激!非常感谢!

3 个答案:

答案 0 :(得分:4)

无法在后台运行应用程序(永远)。

但是,当您的应用正在运行时......您可以将方法repeats的{​​{1}}参数设置为scheduledTimerWithInterval:target:selector:userInfo:repeats:

这是link在后台运行它一段时间来执行相对较大的任务。

答案 1 :(得分:1)

  

即使应用程序在后台运行

也会运行

不可能。你可以要求额外的10分钟,但就是这样。您将无法按原样编写应用程序。

对于问题的计时器部分,您可以这样做:

[NSTimer scheduledTimerWithTimeInterval:60.0
    target:self
    selector:@selector(checkBattery:)
    userInfo:nil
    repeats:YES];

但你真的应该订阅电池更换事件的通知。来自苹果的Here is sample code,展示了如何做到这一点。

答案 2 :(得分:0)

康巴雷是对的。这是iOS政策,它完全是为了防止你想要做的事情,即耗尽iPhone(或iPad)的电池寿命。