Swift Фоновая задача на applicationWillTerminate - PullRequest
0 голосов
/ 25 мая 2019

Я использую набор для звонков и VoIP-звонки.У меня есть случай, когда пользователь находится в состоянии вызова, и пользователь завершает приложение из фона, затем я хотел выполнить некоторые небольшие операции, такие как выход из вызывающего канала, сохранение вызова и т. Д.

Я попытался выполнить следующее, но, похоже, у меня не работает,

var backgroundTask: UIBackgroundTaskIdentifier = .invalid

func applicationWillTerminate(_ application: UIApplication) {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    // Saves changes in the application's managed object context before the application terminates.

    self.saveContext()

    if self.status == .inCall {

        self.backgroundTask =   UIApplication.shared.beginBackgroundTask(expirationHandler: {[unowned self] in

            NSLog("BACKGROUND TIME REMAINING %f", UIApplication.shared.backgroundTimeRemaining)

            UIApplication.shared.endBackgroundTask(self.backgroundTask)

            self.backgroundTask = .invalid



        })

        if let topVC = UIApplication.shared.topMostViewController as? CallingController {
            DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {// this line for just testing 

                topVC.sendText(string: Constants.ChannelMessages.endCall)
                DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {// after two seconds leave the channel and save record 
                    topVC.leaveChannelSaveRecord(completion: {
                        AppDelegate.shared.callManager.endCall(call: topVC.call)
                        // Let's wait for 2 seconds and end background task
                      //  DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
                            UIApplication.shared.endBackgroundTask(self.backgroundTask)
                            self.backgroundTask = .invalid

                       // })
                    })
                })
            })
        }

    }

}

Я уже включил следующее

image

Буду признателен за любую помощь или предложение

спасибо ваванс

1 Ответ

0 голосов
/ 25 мая 2019

Рекомендации: https://www.raywenderlich.com/5817-background-modes-tutorial-getting-started

Включить выборку фона в капитале.

Введено ли в фоновом режиме включить keeplive

Это решение для фонового режима.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...