[問題] 背景執行 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