2017-06-15 17 views
1

我想要創建一個後臺任務來執行一些動作,但不要在應用程序被終止時終止該任務(例如,我雙擊主頁按鈕並從該「列表」中刪除應用程序)。如何在iOS(Swift)上創建後臺進程?

+3

簡答題;你不能。有些特定的背景模式可用於諸如位置和音頻/視頻之類的事物。這些在iOS應用程序編程指南中列出。您可以安排本地通知在特定時間顯示。 – Paulw11

+0

Paulw11 100%正確。蘋果的立場是儘量不給開發者足夠的餘地來濫用用戶的信任;如果有時這意味着妨礙合法用例,那就這樣吧。收益大於損失。一百萬種惡意或惡意開發者可能會濫用任意後臺進程的方式幾乎立即發生,因此Apple會將其允許的內容列入白名單併爲您實施。 – Tommy

+1

如果你解釋你爲什麼要這樣做,也許它會有所幫助。可能有其他方法可以實現你的目標。 –

回答

0

在iOS中殺死應用後,定時器不運行。殺死應用程序會導致操作系統殺死所有應用程序定時器,運行循環和後臺線程。您的應用程序的所有可執行代碼都可能從內存中解除分配,因此甚至無法運行。

您可以安排本地(或遠程)通知,但不會在用戶沒有交互的情況下在您的應用中執行任何代碼。如果設備上運行的是IFTTT應用程序,並且未被殺死,則可能會定期啓動您的應用程序。