2017-10-02 17 views
0

나는 명상 앱을 만들고있다. 이 응용 프로그램에서 나는 24 시간까지 시간을 선택하고 명상을 할 수있는 옵션을 사용자에게 제공하고 있습니다. 타이머는 잠금 화면에서 3 분 동안 정상적으로 작동하지만 3 분 후 멈 춥니 다.NSTimer가 Swift3의 잠금 화면에서 3 분 이상 실행되지 않습니까?

코드는 여기에 있습니다 : - 사전에

 var backgroundTaskIdentifier: UIBackgroundTaskIdentifier? 

    var timer : Timer? 
    var counter : Int! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: { 
     UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!) 
    }) 
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(MainPlayerMindCultivationController.updateTimer), userInfo: nil, repeats: true) 

    } 

func updateTimer() { 
    counter = counter - 1 
    let hours = Int(counter)/3600 
    let minutes = Int(counter)/60 % 60 
    let seconds = Int(counter) % 60 

    timerLabel.fadeTransition(0.4) 
    timerLabel.text = String(format: "%02i:%02i:%02i",hours,minutes,seconds) 

    print("mincounter\(counter)") 

    } 

감사합니다.

+2

자세한 내용은 https://stackoverflow.com/questions/34862160/make-timer-run-on-background-ios-for-more-than-3-minutes를 참조하십시오. – iPatel

답변

2

타이머는 잠금 화면에서 3 분 동안 잘 작동하지만 3 분 후 멈 춥니 다.

iOS가 작동하는 방식입니다. 앱이 중단되면 자신의 타이머를 무효화 한 다음 앱이 다시 시작될 때 앱을 다시 시작해야합니다. 하지만 앱을 일시 중지하지 않으면 OS가 일시 중지되면 운영 타이머가 무효화됩니다.

이 응용 프로그램에서 나는 24 시간까지 시간을 선택하고 명상을 할 수있는 옵션을 제공하고 있습니다.

로컬 알림은 이러한 종류의 작업에 훨씬 더 유용한 도구입니다. 앞으로 어떤 시점에서 알림이 발생하도록 예약 할 수 있으며 운영 체제가 알림을 사용자에게 전달합니다. 알림이 전달되면 사용자는 귀하의 메시지를 볼 수 있으며 앱이 현재 실행되지 않고 있어도 앱으로 전환 할 수 있습니다.