我有一个UIButton:@IBAction func button1(_ sender: Any) { }
。我想要的是在用户下载应用程序后仅显示两天,然后我希望它消失。
我创建了一个(倒数计时器):
var timer:Timer?
var time = 172800 //2Days
然后我创建了此函数:
@objc func passedTime(){
time -= 1
if time <= 0 {
timer!.invalidate()
timer = nil
}
}
在我的viewDidLoad中:
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(passedTime), userInfo: nil, repeats: false)
显然,即使用户也关闭了该应用程序,我也希望继续进行下去。
答案 0 :(得分:2)
关闭应用程序后无法运行计时器。用户打开应用程序时,您需要执行以下操作:
class DailyWorker(ctx: Context, params: WorkerParameters) : Worker(ctx, params)
{
override fun doWork(): Result {
// Do Something
val now = LocalTime.now()
val nineAM = LocalTime.parse("09:00:00")
val timeDiff = Duration.ofHours(24).minus(Duration.between(nineAM, now))
val dailyWorkRequest = OneTimeWorkRequestBuilder<DailyWorker>()
.setInitialDelay(timeDiff)
.addTag(TAG_OUTPUT)
.build()
WorkManager.getInstance(applicationContext).enqueue(dailyWorkRequest)
return Result.success()
}
}