[问题] 背景执行 Timer 的方法

楼主: lucasbard (路卡思诗人)   2019-04-19 16:24:09
大家好,目前在制作一个番茄时钟的APP,想要在 user 按下计时后,在前台或是后台,A
PP 都可以继续计时,然后时间到了,“通知”使用者专心时间到了
目前做好了使用者在前台的时候,一切都OK,也顺利把通知做成在前台能够显示
但是如果后台 (user按了home键),计时器就停止了
查了老半天,不知道该怎么做好
git
https://github.com/lucasneverdie/VintageTomato
方式一.
开启 Capabilities 的 background mode ,在“Audio,AirPlay,and Picture in Pictur
e”打勾,这个方式在 Xcode的模拟器是可行的,但是手机上一样不会出来,失败
方式二.
使用 backgroundTaskIdentifier ,但这好像只是多争取一些时间,并不能长时间计时,
失败
方式三.
有人提到使用 “applicationDidEnterBackground” 然后再进入背景的时候,记录目前
时间,然后APP重新运行的时候再使用目前时间相减,然后再启动 Timer ,但是这样在背
景的时候一样没办法“通知”user 时间到了,失败
方式四.
这我自己预想的方式。
因为 Timer 无法在背景执行,但是 Schedule notification 然后设定秒数可以,那么比
方进入背景的时候,Timer 暂停,把现在的 Timer 数值记录起来,建立一个新的Schedul
e notification 然后设定秒数,时间到了就会通知 user 时间到了,但是都没人提到这
样做,所以我预感应该是有什么问题
市场上这么多蕃茄时钟 APP ,居然好像没有简单的解决方式
麻烦指点迷津,谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com