Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Iphone处于睡眠模式时,Iphone应用程序会延迟10-15分钟_Iphone_Sleep_Nstimer - Fatal编程技术网

当Iphone处于睡眠模式时,Iphone应用程序会延迟10-15分钟

当Iphone处于睡眠模式时,Iphone应用程序会延迟10-15分钟,iphone,sleep,nstimer,Iphone,Sleep,Nstimer,我创建了一个使用NSTimer的应用程序,它每秒都会被触发 我的问题是,如果Iphone处于睡眠模式,我会延迟10到15秒 事件触发前的分钟。我已经溢出并用谷歌搜索了这个 这样做的原因似乎是手机肯定会停止监听 处于睡眠模式时的事件 有些人通过播放静音来解决这个问题,不允许 打电话睡觉 延迟的原因可能是什么 静音解决方案似乎是一个非常“肮脏”的解决方案。还有别的办法解决这个问题吗 如果我使用静音解决方案,它会通过苹果审查吗 代码: timer = [NSTimer timerWithTimeInt

我创建了一个使用NSTimer的应用程序,它每秒都会被触发

我的问题是,如果Iphone处于睡眠模式,我会延迟10到15秒 事件触发前的分钟。我已经溢出并用谷歌搜索了这个 这样做的原因似乎是手机肯定会停止监听 处于睡眠模式时的事件

有些人通过播放静音来解决这个问题,不允许 打电话睡觉

  • 延迟的原因可能是什么
  • 静音解决方案似乎是一个非常“肮脏”的解决方案。还有别的办法解决这个问题吗
  • 如果我使用静音解决方案,它会通过苹果审查吗 代码:

    timer = [NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(goAction)userInfo:nil repeats:YES];
    
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    
    -(void)goAction {
      // Here i check for some dates and then call the activateBeepAlarmView 
    }
    

    每秒触发NSTimer时,应用程序中会发生什么?请提供显示计时器创建的代码以及计时器完成时调用的选择器代码

    你说的“延迟10到15分钟”是什么意思?延迟时间总是那么长吗?或者,你等待多久才能唤醒iPhone,然后触发事件

    根据你每秒钟需要做什么,你可以用不同的方式处理这种情况。请回复,我们将努力解决这个问题


    Bart

    当每秒触发NSTimer时,应用程序中会发生什么?请提供显示计时器创建的代码以及计时器完成时调用的选择器代码

    你说的“延迟10到15分钟”是什么意思?延迟时间总是那么长吗?或者,你等待多久才能唤醒iPhone,然后触发事件

    根据你每秒钟需要做什么,你可以用不同的方式处理这种情况。请回复,我们将努力解决这个问题


    Bart

    当iPhone进入睡眠状态时,你的应用程序和运行NSTimer的runloop也会进入睡眠状态

    您似乎认为NSTimer是某种基于硬件的计时器。事实并非如此。它完全在启动它的应用程序的软件中运行。我不知道是什么唤醒了你的应用程序,但它肯定不是NSTimer

    简而言之,你想做的是不可能的。你不能让手机休眠,然后让应用程序仍处于活动状态并运行。静音技术只是让手机保持清醒和应用程序运行的一个难题


    如果您需要手机保持清醒,则需要将应用程序的
    idleTimerDisabled
    设置为YES。这将阻止手机睡眠,并且应用程序可以保持活动状态。但一旦你让手机进入睡眠状态,它就无法从应用程序代码中唤醒。只有硬件能够响应警报或传入消息

    当iPhone进入睡眠状态时,你的应用程序和运行NSTimer的runloop也会进入睡眠状态

    您似乎认为NSTimer是某种基于硬件的计时器。事实并非如此。它完全在启动它的应用程序的软件中运行。我不知道是什么唤醒了你的应用程序,但它肯定不是NSTimer

    简而言之,你想做的是不可能的。你不能让手机休眠,然后让应用程序仍处于活动状态并运行。静音技术只是让手机保持清醒和应用程序运行的一个难题


    如果您需要手机保持清醒,则需要将应用程序的
    idleTimerDisabled
    设置为YES。这将阻止手机睡眠,并且应用程序可以保持活动状态。但一旦你让手机进入睡眠状态,它就无法从应用程序代码中唤醒。只有硬件能够响应警报或传入消息

    既然没有人回答我的三个问题,我就必须回答它们:

    1。延迟的原因是什么? 我要引述:

    在应用程序上调用applicationWillResignActive后,您只需停止接收事件: 委托可以实现此方法,以便在应用程序从活动状态转换到非活动状态时进行调整。当应用程序处于非活动状态时,它正在执行,但不调度传入事件。当覆盖窗口弹出或设备锁定时,会发生这种情况

    睡眠模式的要点是节约能源。要做到这一点,设备将停止监听您请求的事件。NSTimer事件仍然会触发,因为它们不需要昂贵的(电池)硬件监控。此外,报警是使用NSTimer实现的,因此即使在睡眠中,它们也需要能够正常工作。否则,人们可能不会醒来责备他们的iPhone

    2。静音解决方案似乎是一个非常“肮脏”的解决方案。有其他方法解决这个问题吗?
    不,目前我还没有找到其他解决方案,如果我错了,请随时纠正我。 查看博客文章如何做到这一点

    3。如果我使用静音解决方案,它会通过苹果审查吗?
    是的

    既然没有人回答我的三个问题,我就必须回答他们:

    1。延迟的原因是什么? 我要引述:

    在应用程序上调用applicationWillResignActive后,您只需停止接收事件: 委托可以实现此方法,以便在应用程序从活动状态转换到非活动状态时进行调整。当应用程序处于非活动状态时,它正在执行,但不调度传入事件。当覆盖窗口弹出或设备锁定时,会发生这种情况

    睡眠模式的要点是节约能源。要做到这一点,设备将停止监听您请求的事件。NSTimer事件仍然会触发,因为它们不需要昂贵的(电池)硬件监控。此外,报警是使用NSTimer实现的,因此即使在睡眠中,它们也需要能够正常工作。否则,人们可能不会醒来责备他们的iPhone

    <