[問題] 背景執行 Timer 的方法

看板MacDev作者 (路卡斯)時間5年前 (2019/04/19 16:24), 5年前編輯推噓2(208)
留言10則, 4人參與, 5年前最新討論串1/1
大家好,目前在製作一個番茄時鐘的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 ,居然好像沒有簡單的解決方式 麻煩指點迷津,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.255.175 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1555662253.A.163.html

04/19 17:44, 5年前 , 1F
3 + 4
04/19 17:44, 1F

04/19 18:33, 5年前 , 2F
最簡單就是定時一個 local notificati
04/19 18:33, 2F

04/19 21:15, 5年前 , 3F
3,進背景時,定時一個local notification
04/19 21:15, 3F

04/19 21:37, 5年前 , 4F
發送時間定在現在+倒數剩餘時間
04/19 21:37, 4F

04/19 21:44, 5年前 , 5F
進入背景的時候紀錄下現在的時間,並且計
04/19 21:44, 5F

04/19 21:44, 5年前 , 6F
算達時間的時間差,做成local notificatio
04/19 21:44, 6F

04/19 21:44, 5年前 , 7F
n,如果提早回到前景,那就比較現在時間與
04/19 21:44, 7F

04/19 21:44, 5年前 , 8F
近背景的差距加到畫面上,並且註銷local n
04/19 21:44, 8F

04/19 21:44, 5年前 , 9F
otification
04/19 21:44, 9F

04/19 23:18, 5年前 , 10F
推darktt方法
04/19 23:18, 10F
感謝 ※ 編輯: lucasbard (61.220.255.175), 04/22/2019 10:53:28
文章代碼(AID): #1SkOMj5Z (MacDev)