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

iOS 애플리케이션이 백그라운드 또는 포그라운드에 있는지 감지하는 방법은 무엇입니까?

<시간/>

iOS 애플리케이션이 백그라운드 또는 포그라운드에 있는지 감지하려면 배터리 상태, 상태 등과 같은 다른 많은 것을 감지하는 데 사용할 수 있는 것처럼 UIApplication을 사용하기만 하면 됩니다.

우리의 애플리케이션에서 이것을 어떻게 할 수 있는지 봅시다. UIApplication.shared에 저장된 애플리케이션의 공유 리소스를 사용할 것입니다. 아래와 같이 사용할 수 있습니다 -

print(UIApplication.shared.applicationState)

shared.application state는 State 유형의 열거형이며, Apple 문서에 따라 다음으로 구성됩니다.

public enum State : Int {
   case active
   case inactive
   case background
}

케이스 활성은 애플리케이션이 포그라운드에 있고 애플리케이션을 활성 상태로 유지할 수 있는 터치 이벤트 또는 기타 이벤트와 같은 이벤트를 수신하고 있음을 의미합니다.

Case Inactive는 애플리케이션이 포그라운드에서 실행 중이지만 이벤트를 수신하고 있지 않음을 의미합니다.

케이스 백그라운드는 애플리케이션이 백그라운드에서 실행되고 있음을 의미합니다.

위와 같이 필요에 따라 사용하시면 됩니다. 조건에 따라 특정 작업을 수행할 수도 있습니다.

let state = UIApplication.shared.applicationState
if state == .active {
   print("I'm active")
}
else if state == .inactive {
   print("I'm inactive")
}
else if state == .background {
   print("I'm in background")
}

애플리케이션의 viewDidLoad에서 이것을 실행하면 다음 결과를 얻습니다.

iOS 애플리케이션이 백그라운드 또는 포그라운드에 있는지 감지하는 방법은 무엇입니까?