[英]How to cancel sleep mode of an iOS application?
我正在開發一個 iOS 應用程序,該應用程序應該在進入后台模式之前發出服務器請求。 我的應用程序不應該等待響應,因為這是不需要的。 此請求的唯一目的是我需要將應用程序的狀態保留在我的數據庫中,以了解用戶是否在線/離線。
當應用程序進入后台時,我發出服務器請求並通過 sleep(3) 將應用程序置於睡眠模式,以便它可以成功完成服務器調用。
func applicationDidEnterBackground(_ application: UIApplication) {
//make a server call
sleep(3) //so that app can submit request to server before closing
}
這工作正常,但如果我在睡眠時間結束之前再次打開應用程序(進入前台),應用程序不會響應任何類型的用戶輸入/點擊。 甚至 applicationDidBecomeActive 方法也不會被調用。 它等待我之前設置的睡眠時間完成。
當應用程序處於活動狀態時,如何取消睡眠模式?
不要使用sleep
。 相反,使用適合后台處理的 URLSession 發出服務器請求:
let session = URLSession(configuration: .background(withIdentifier: "foo"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.