簡體   English   中英

如何取消 iOS 應用程序的睡眠模式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM