Để phát hiện ứng dụng iOS đang ở chế độ nền hay nền trước, chúng ta có thể chỉ cần sử dụng Ứng dụng UIA giống như chúng ta có thể sử dụng nó để phát hiện nhiều thứ khác như trạng thái pin, trạng thái, v.v.
Hãy xem cách chúng tôi có thể thực hiện việc này trong ứng dụng của mình. Chúng tôi sẽ sử dụng các tài nguyên được chia sẻ trong Ứng dụng của chúng tôi được lưu trữ trong UIApplication.shared. Chúng ta có thể sử dụng nó như hình bên dưới -
print(UIApplication.shared.applicationState)
Trạng thái shared.application là một trạng thái kiểu enum, bao gồm các trạng thái sau theo tài liệu của apple.
public enum State : Int { case active case inactive case background }
Trường hợp hoạt động có nghĩa là ứng dụng đang ở nền trước và đang nhận các sự kiện như sự kiện chạm hoặc bất kỳ sự kiện nào khác có thể giữ cho ứng dụng hoạt động.
Trường hợp Không hoạt động có nghĩa là ứng dụng đang chạy ở nền trước nhưng không nhận được bất kỳ sự kiện nào.
Nền trường hợp có nghĩa là ứng dụng đang chạy trong nền.
Chúng ta có thể sử dụng tùy theo nhu cầu của mình như hình trên. Chúng tôi cũng có thể thực hiện một số hoạt động nhất định tùy thuộc vào điều kiện.
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") }
Khi chúng tôi chạy điều này trong viewDidLoad của ứng dụng của chúng tôi, chúng tôi nhận được kết quả sau: