以下是我在Similator(Watch)上工作的一些watchOS代码:
.....
let interval = 60.0
NSTimer.scheduledTimerWithTimeInterval(interval,
target: self,
selector: #selector(InterfaceController.timerDidEnd(_:)),
userInfo: nil, repeats: false)
.....
func timerDidEnd(timer:NSTimer) {
print("Time is over! Please wake up!")
}
从Xcode我运行应用程序,上面代码的第一部分被执行。然后我按下Command-Shift-H,应用程序进入后台。
一分钟后,我在调试控制台中看到消息:时间结束了!请醒来!
一切都如我所料。我的问题是:
我应该在函数timerDidEnd()中写什么,以便让应用程序从模拟器的后台唤醒,而不是仅仅在调试器中打印当前消息?
答案 0 :(得分:1)
在计时器操作中没有任何内容可以将应用程序带到前台。只有用户才能恢复应用。
如果你考虑一下,如果一个应用程序可以在任何时候以编程方式将自己带到前台,那么它会给用户造成混乱和破坏。
恢复应用的唯一方法是用户对通知作出反应。这类似于当用户从主屏幕点击通知操作时手机上发生的情况。