我正在为我的应用程序画龙点睛,但是当应用程序进入后台时,我运行的5分钟倒数计时器会暂停。 我需要一个专家来帮助我解决这个问题,我几乎看不懂我阅读的每个解决方案。
我曾尝试与其他人的代码一起观看教程,但是不知道自己在做什么,很难将其实现为我自己的代码。由于我只是从GitHub上的某人那里借来的代码。
RUN apk update && apk add --no-cache bash \
alsa-lib \
at-spi2-atk \
atk \
cairo \
cups-libs \
dbus-libs \
eudev-libs \
expat \
flac \
gdk-pixbuf \
glib \
libgcc \
libjpeg-turbo \
libpng \
libwebp \
libx11 \
libxcomposite \
libxdamage \
libxext \
libxfixes \
tzdata \
libexif \
udev \
xvfb \
zlib-dev \
chromium \
chromium-chromedriver
我尝试使用代码在后台运行时停止计时器,并在前台运行时对其进行更新,但是我找不到找到一种在计时器关闭时捕获计时器值的方法
答案 0 :(得分:0)
在AppDelegate中尝试此操作,并在AppDelegate中管理您的代码。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var timerControl = 0
var backgroundTaskIdentifier: UIBackgroundTaskIdentifier?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCode), userInfo: nil, repeats: true)
backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: {
})
return true
}
@objc func timerCode() {
timerControl = timerControl + 1
if timerControl == 5 {
/// -> Do Something
} else {
/// -> Stop the task
UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!)
}
}
}