1
您好我發現如果我添加runloop當應用程序進入後臺就會造成XPC連接中斷Runloop總是導致XPC連接中斷?
例如,我的應用程序連接到BLE裝置,如果用戶讓應用程序進入後臺了一段時間,我將退出該應用程序比釋放連接
這裏是我的代碼
func applicationDidEnterBackground(_ application: UIApplication) {
isInBackground = true
timer = Timer.scheduledTimer(timeInterval: 300 , target: self, selector: #selector(self.quitApp), userInfo: nil, repeats: false)
RunLoop.current.add(timer, forMode: .commonModes)
RunLoop.current.run()
}
func quitApp() {
if isInBackground == true {
print("QUIT APP")
exit(0)
}
}
func applicationWillEnterForeground(_ application: UIApplication) {
timer.invalidate()
isInBackground = false
}
但每次我進入前景時,我發現,如果我刪除runloop在
func applicationDidEnterBackground
該應用程序將運行
func applicationDidBecomeActive
or
func applicationWillEnterForeground
但是,如果我添加了Runloop,就會造成
XPC連接中斷
我不明白什麼是Runloop和應用程序生命之間的關係循環?此外,如果我讓應用程序進入足夠的時間,應用程序將退出,再次打開應用程序一切都很好。
謝謝!也許我需要避免使用runloop –