Objective c 设置在IOS应用程序生命周期内运行的计时器

Objective c 设置在IOS应用程序生命周期内运行的计时器,objective-c,ios,delegates,timer,Objective C,Ios,Delegates,Timer,我正在试图找到一种方法,让计时器从安装应用程序时开始,即使应用程序在后台也能继续运行。我基本上是用定时器定期检查连接到手机的外部设备的电池寿命。有人告诉我,最好的方法是使用某种对计时器函数的委托调用,但我对IOS还相当陌生,对如何实现这一点很困惑。我知道如何设置计时器并获得电池寿命,但我对如何在应用程序的整个生命周期中保持计时器感到困惑。您能给予的任何帮助都将不胜感激!非常感谢 即使应用程序在后台也可以运行 不可能。你可以要求额外10分钟,但仅此而已。您将无法按原样编写应用程序 对于问题的计时器

我正在试图找到一种方法,让计时器从安装应用程序时开始,即使应用程序在后台也能继续运行。我基本上是用定时器定期检查连接到手机的外部设备的电池寿命。有人告诉我,最好的方法是使用某种对计时器函数的委托调用,但我对IOS还相当陌生,对如何实现这一点很困惑。我知道如何设置计时器并获得电池寿命,但我对如何在应用程序的整个生命周期中保持计时器感到困惑。您能给予的任何帮助都将不胜感激!非常感谢

即使应用程序在后台也可以运行

不可能。你可以要求额外10分钟,但仅此而已。您将无法按原样编写应用程序

对于问题的计时器部分,您可以执行以下操作:

[NSTimer scheduledTimerWithTimeInterval:60.0
    target:self
    selector:@selector(checkBattery:)
    userInfo:nil
    repeats:YES];
但是你真的应该订阅电池更换事件的通知。来自苹果,展示了如何做到这一点

即使应用程序在后台也可以运行

不可能。你可以要求额外10分钟,但仅此而已。您将无法按原样编写应用程序

对于问题的计时器部分,您可以执行以下操作:

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

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

科内比雷是对的。这是iOS的政策,它的存在正是为了防止您试图做的事情,即耗尽iPhone(或iPad)的电池寿命。

coneybeare是正确的。这是iOS策略,它的存在正是为了防止您试图做的事情,即耗尽iPhone(或iPad)的电池寿命。

不可能在后台(永远)运行应用程序

但是当你的应用程序运行时。。。您可以将方法的
repeats
参数
scheduledTimerWithInterval:target:selector:userInfo:repeats:
设置为
YES


下面是一个在后台运行一段时间以执行相对较大任务的方法。

在后台运行应用程序(永远)是不可能的

但是当你的应用程序运行时。。。您可以将方法的
repeats
参数
scheduledTimerWithInterval:target:selector:userInfo:repeats:
设置为
YES


下面是一个在后台运行一段时间以执行相对较大任务的方法。

为什么不可能?我希望在Android中创建类似的服务。i、 该应用程序正在运行,但目前可能不在最前沿,但仍在后台运行。ios没有这种功能吗?苹果不允许。你能做的最好的事情就是在你的应用程序进入前台的时候开始。那么像Spotify这样的应用程序怎么能让你在应用程序不在前台的时候继续播放音乐呢?是不是因为音乐不同,所以你可以接管系统音频?这里没有什么解决方法吗?允许使用某些类别的应用程序:您的应用程序不是其中之一。我强烈建议阅读iPhone编程指南。为什么不可能呢?我希望在Android中创建类似的服务。i、 该应用程序正在运行,但目前可能不在最前沿,但仍在后台运行。ios没有这种功能吗?苹果不允许。你能做的最好的事情就是在你的应用程序进入前台的时候开始。那么像Spotify这样的应用程序怎么能让你在应用程序不在前台的时候继续播放音乐呢?是不是因为音乐不同,所以你可以接管系统音频?这里没有什么解决方法吗?允许使用某些类别的应用程序:您的应用程序不是其中之一。我强烈建议阅读iPhone编程指南。如果我的电池检查结果显示电池电量不足,我希望能够每两个小时提醒用户一次。你对如何实现这一点有什么建议吗?如果我的电池检查结果显示电池电量不足,我希望能够每两个小时提醒用户一次。你对如何实现这一目标有什么建议吗?谢谢!实现长时间运行的后台任务部分直接应用于我正在做的事情!那很好。很高兴我能帮忙。谢谢!实现长时间运行的后台任务部分直接应用于我正在做的事情!那很好。很高兴我能帮忙。