我有一個android/winphone應用程序。應用程序(背景廣播接收器/任務)不時(小時約10-15分鐘)的一小部分使用時間戳檢查本地文件,如果時間戳和當前時間之間的差異變得超過 - 比如說 - 30分鐘,它會顯示通知一個用戶。iOS上的後臺任務計時器
在Android中,我使用AlarmManager.setRepeating(...)來設置定期檢查,並運行此設置代碼,我在Manifest中的操作「android.intent.action.BOOT_COMPLETED」上註冊BroadcastReceiver。或者在每次啓動時調用AlarmManager.cancel(...)和AlarmManager.setRepeating(...)。這樣我可以確定我的計時器工作。
在Windows通用中,我使用觸發器和後臺任務。這與一些限制相同。
現在我正在將應用程序移植到iOS,並且快速查找並沒有給我一種註冊函數或類的方法,以便每10分鐘執行一次快速檢查(通常少於一秒),而應用程序本身不是推出,並且我想在設備啓動事件上註冊一個功能。可能嗎? 或者我應該讓我的應用程序在後臺運行?我寧願不這樣做,因爲我的支票是輕量級和罕見的。
感謝的答案! RW文章中的背景獲取限制了10分鐘 - 或者不是?我看到了Candy Crush,我相信它也是一樣的(因爲它警告恢復生命,基本上我認爲同樣的計時器檢查)。所以它看起來像可生成的背景檢查是可能的。但接下來 - 這樣的應用程序會永遠保存在背景中嗎?而如果一天中需要下載32字節的文件和當前的版本號 - 如何做到這一點(由於緩慢/錯誤的網絡,它應該需要超過30秒,而通常需要幾個)? – Tertium
如果執行很多,則該進程將被iOS殺死。我必須測試長期線程。我得到了同樣的問題:'AlarmManager'是iOS。爲了達到我的目的,我決定不使用後臺提取在發佈應用程序中定期啓動。但是可能你會爲你找到一個很好的實現。 – Vyacheslav
但是,如果我只是忘記了網絡查詢,只讀本地文件並檢查我的定時器 - 它會在應用程序進程關閉後工作嗎?每10分鐘<1秒並不多。仍然不太明白它是如何工作的,在談論背景獲取時你是指什麼類/方法? beginBackgroundTaskWithExpirationHandler? – Tertium