Computer >> Máy Tính >  >> Lập trình >> IOS

Cách chạy bộ hẹn giờ trong nền trong ứng dụng iOS của bạn

Nếu bạn muốn chạy bộ hẹn giờ trong nền trong Ứng dụng iOS của mình, Apple cung cấp phương thức beginBackgroundTaskWithExpirationHandler, bạn có thể đọc thêm về cùng một https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtaskwithexpiration.

Chúng tôi sẽ sử dụng mã tương tự để viết mã của chúng tôi để chạy bộ hẹn giờ trong nền.

Vậy hãy bắt đầu.

Bước 1 - Mở Xcode → Ứng dụng một lần xem → Tên gọi là BackgroundTimer.

Bước 2 - Mở AppDelegate.swift và dưới phương thức applicationDidEnterBackground, viết mã bên dưới.

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

Bước 3 - Viết hàm mới doSomething ()

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

Cuối cùng mã của bạn sẽ giống như bên dưới

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")
}

Chạy ứng dụng

Ở đây chúng tôi đang in “Tôi đang chạy” khi ứng dụng chuyển sang chế độ nền. Khi ứng dụng ở chế độ nền, "Tôi đang chạy" sẽ bắt đầu in trên bảng điều khiển. Nhấn vào nút trang chủ và kiểm tra. Tuy nhiên, bạn có thể chạy bộ hẹn giờ tối đa trong 3 phút khi ứng dụng của bạn ở chế độ nền như được chỉ định trong tài liệu của Apple và đã được kiểm tra.

Trong khi chạy ứng dụng này, hãy đặt ứng dụng ở chế độ nền và đợi trong 3 phút, bạn sẽ thấy sau 3 phút “Tôi đang chạy” sẽ không in. Bây giờ đưa ứng dụng lên nền trước và bạn sẽ thấy “Tôi đang chạy” đã bắt đầu in.

Cách chạy bộ hẹn giờ trong nền trong ứng dụng iOS của bạn