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交互
基础教程推荐
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01