Interacting with IPhone while in sleep mode(在睡眠模式下与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交互的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在睡眠模式下与iPhone交互
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- android 4中的android RadioButton问题 2022-01-01