在睡眠模式下与iPhone交互 [英] Interacting with IPhone while in sleep mode

查看:77
本文介绍了在睡眠模式下与iPhone交互的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望我的应用程序保持运行并与用户交互,即使用户按下休眠按钮。
到目前为止,我了解到,我的应用程序可以通过以下代码保持活力:

NSTimer *timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

这是成功的。该方法
- (void)timerFireMethod:(NSTimer*)theTimer
将每隔0.5秒调用一次,即使我处于睡眠模式。

所以我知道我的问题是:我如何在休眠模式下与我的应用程序交互? 我只需要一个触发器就可以开始播放定制的音频文件。因此,我需要一个触发事件,类似于检测:
-轻触显示屏
-加速活动
-a MotionShake事件

但在获得applicationWillResignActive-事件后,上面的所有操作都不起作用。我的加速度计停止传递加速事件。我不能再启动它们了。 将不会传递MotionShake事件,我不知道是否可能在睡眠时捕获触摸事件。

更新
我希望用户使用我的应用程序,比如说5小时。如果它空闲了一段时间,它就会自己睡着。 我可能误解了睡眠模式的意思。IPhone应该一直在运行,但我不需要显示屏和背景灯一直亮着(这些都是最耗电的部分)。我知道,当每隔10秒播放一次无声声音时,iPhone是不会睡着的。我知道iPod应用程序能够在该模式下运行,用户可以通过摇动设备与其交互。那么,难道没有官方的方式让一款应用也能做到这一点吗?
-

有人知道吗?

谢谢扎萨斯苏拉

推荐答案

一旦对应用程序调用applicationWillResignActive,您只需停止接收事件:

委托可以实现此方法 在发生以下情况时进行调整 应用程序从活动的 状态设置为非活动状态。当一个 应用程序处于非活动状态,它是 正在执行但不是调度 传入事件。这在以下情况下发生 弹出覆盖窗口或当 设备已锁定。

睡眠模式的意义在于节省能量。为此,设备将停止侦听与您请求的事件类似的事件。

NSTmer事件仍将触发,因为它们不需要昂贵的(电池)硬件监视。此外,警报是使用NSTmer实现的,因此即使在睡眠状态下,它们也需要能够运行。否则,人们可能不会一觉醒来就责怪自己的iPhone。

这篇关于在睡眠模式下与iPhone交互的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆