2017-09-05 8 views
1

こんにちは私はアプリがバックグラウンドを入力すると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 
} 

である。しかし、私は

func applicationDidEnterBackground 
で実行ループを削除する場合、私はフォアグラウンドに入るたびに、私が見つかりました。

アプリが

func applicationDidBecomeActive 
or 
func applicationWillEnterForeground 

を実行します。しかし、私は実行ループを追加する場合、それは

XPC接続が

を中断し、私は実行ループとアプリの生活との関係何を理解していないが発生しますサイクル???

また、アプリが十分な時間背景を入力すると、アプリが終了します

答えて

0

XPCは実行ループを使用して実装されるため、実行ループを改ざんするとXPC接続が中断されることはあまりありません。

+0

ありがとうございます!多分私はrunloopを使わないでください –

関連する問題