iPhone上睡眠模式下的UILocalNotification

Posted

技术标签:

【中文标题】iPhone上睡眠模式下的UILocalNotification【英文标题】:UILocalNotification in sleep mode on iPhone 【发布时间】:2011-05-18 11:41:43 【问题描述】:

我正在开发一个 Voip 应用程序。

当我按下锁定按钮(应用程序进入睡眠状态)并且服务器发送请求时,我会显示本地通知。 本地通知按应有的方式呈现,并且按钮滑块文本显示“滑动回答”。如果我滑到这里,应用就会打开。

但是,如果现在我再次按下锁定按钮,然后解锁,通知仍然显示并且滑块文本已更改为“滑动解锁”。

现在,当我滑动解锁时,就好像我按下了常规通知栏上的“关闭”按钮,这意味着应用程序不会打开。

我的问题是为什么第二次仍然显示本地通知?如果是这样,有没有办法跟踪解锁按钮事件或解锁滑块,以便我可以告诉服务器我不想接听电话?

谢谢

【问题讨论】:

【参考方案1】:

通知只是一个短时间的对话框(即用户可以直接与之交互) - 直到设备再次锁定,通过使用按钮或在大约 15 秒超时后自动锁定。

之后,它变成一个通知。除了阅读消息之外,用户无法直接与其交互。

对不起,不幸的是,它并没有好转。

【讨论】:

你如何解释当我的应用程序在后台并显示本地通知时,按下锁定按钮,然后解锁,非常快(低于你要求通知的 15 秒将消失),使通知消失。但是,当处于睡眠模式并显示通知时,锁定然后解锁仍会将通知呈现在屏幕上,而无需任何操作? 就像我说的,要么是超时,要么是按下锁定按钮。一样的效果。两者都有效地取消(或者更确切地说,忽略)对话框选项。 顺便说一句,应用程序在后台但未锁定的场景对我来说是新的,我的回答没有讨论这个问题。但我敢猜测,这也是“没有好转”的情况。 另外,我不主张通知消失。它们只是变成消息而不是对话框。

以上是关于iPhone上睡眠模式下的UILocalNotification的主要内容,如果未能解决你的问题,请参考以下文章

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

当 iphone 处于睡眠模式/锁定时,如何使用视频播放?

防止睡眠模式和自动锁定iPhone SDK

如何在 iPhone 上可靠地获取位置

当 Apple Watch 处于后台状态或睡眠模式时,我们如何从 iphone 向 Apple Watch 发送消息?

Google (Play) 睡眠模式下的位置服务更新间隔更改 (Android)