2017-12-21 5 views
0

以下のコードよりバックグラウンドモードで特定のタスクを書きましたが、これはタスク終了後3分間だけ実行されます。だから私はそれが終了するまで、特定のタスクを実行したいと思います。 (docの表3-1)(アップルによって)アプリケーションがバックグラウンドモードまたはロックモードで終了してもタスクを実行する方法

func registerBackgroundTask() { 
    backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in 
     self?.endBackgroundTask() 
    } 
    assert(backgroundTask != UIBackgroundTaskInvalid) 
} 

func endBackgroundTask() { 
    print("Background task ended.") 
    AppConstants.sharedInstance.scheduleLocalNotification(message: "Background task ended.", title: "status!") 
    UIApplication.shared.endBackgroundTask(backgroundTask) 
    backgroundTask = UIBackgroundTaskInvalid 
} 

self.registerBackgroundTask() 
self.perform(#selector(self.backgroundTimer(challengeId:)), with: "\(tag)", afterDelay:600) 

答えて

0

このdocに見られるような、唯一の事前定義されたタスクは無期限に実行することが許可されています。タスクが完了するまで実行する方法はありません。しかし、壊れたデバイスをターゲットにしている場合は、デーモンを作成することでそれを行うことができます。これはあなたの場合ではないようです。だから、あなたは運がありません。

関連する問題