Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS 앱 내에서 백그라운드에서 타이머를 실행하는 방법

<시간/>

iOS 애플리케이션 내에서 백그라운드에서 타이머를 실행하려는 경우 Apple은 beginBackgroundTaskWithExpirationHandler 메소드를 제공합니다. 동일한 https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtaskwithexpiration에 대해 자세히 알아볼 수 있습니다.

백그라운드에서 타이머를 실행하기 위한 코드를 작성하는 데 동일한 것을 사용할 것입니다.

그럼 시작하겠습니다.

1단계 − Xcode 열기 → Single View Application → 이름은 BackgroundTimer입니다.

2단계 − AppDelegate.swift를 열고 applicationDidEnterBackground 메소드 아래에 아래 코드를 작성하세요.

backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: {
   UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!)
})
_ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.doSomething), userInfo: nil, repeats: true)

3단계 - 새로운 함수 doSomething() 작성

@objc func doSomething() {
   print("I'm running")
}

마지막으로 코드는 다음과 같아야 합니다.

func applicationDidEnterBackground(_ application: UIApplication) {
   backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: {
      UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!)
   })
   _ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.doSomething), userInfo: nil, repeats: true)
}
@objc func doSomething() {
   print("I'm running")
}

애플리케이션 실행

여기서 우리는 애플리케이션이 백그라운드로 갈 때 "I'm running"을 인쇄하고 있습니다. 앱이 백그라운드로 전환되면 "I'm running"이 콘솔에서 인쇄를 시작합니다. 홈 버튼을 누르고 테스트하십시오. 그러나 Apple 설명서에 지정되고 테스트된 대로 앱이 백그라운드에 있을 때 최대 타이머를 3분 동안 실행할 수 있습니다.

이 응용 프로그램을 실행하는 동안 응용 프로그램을 백그라운드로 만들고 3분 동안 기다리면 "I'm running"이 인쇄되지 않는 것을 볼 수 있습니다. 이제 응용 프로그램을 포그라운드로 가져오면 "I'm running" 인쇄가 시작되었음을 알 수 있습니다.

iOS 앱 내에서 백그라운드에서 타이머를 실행하는 방법