- (void)openCountdown {
// 判斷用戶有沒有登錄
if ([OJPNSUserDefaultsTools isLogin]) {
// 如果登錄了則一直更新坐標(biāo)
[OJPNSUserDefaultsTools setIsUpdateLocation:YES];
}
else {
// 沒有登錄則不更新
[OJPNSUserDefaultsTools setIsUpdateLocation:NO];
}
// NSLog(@"Location_啦啦啦啦--開始更新用戶位置了.....");
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);
// 每秒執(zhí)行一次 總時(shí)長(zhǎng)10分鐘
NSTimeInterval seconds = 10*60.f; //10*60.f;//20;
NSDate *endTime = [NSDate dateWithTimeIntervalSinceNow:seconds];
// 最后期限
dispatch_source_set_event_handler(_timer, ^{
int interval = [endTime timeIntervalSinceNow];
if (interval > 0) {
// 更新倒計(jì)時(shí)
NSString *timeStr = [NSString stringWithFormat:@"%d秒", interval];
dispatch_async(dispatch_get_main_queue(), ^{
// NSLog(@"Location_距離下次更新用戶位置時(shí)間還剩%@",timeStr);
});
}
else {
// 倒計(jì)時(shí)結(jié)束,關(guān)閉
dispatch_source_cancel(_timer);
dispatch_async(dispatch_get_main_queue(), ^{
// 重復(fù)執(zhí)行 如果當(dāng)前在更新用戶位置信息,則重復(fù)執(zhí)行
if ([OJPNSUserDefaultsTools getIsUpdateLocation]) {
[OJPNSUserDefaultsTools setIsUpdateLocation:NO];
OJPMainTabBarController *mainTabBar = [OJPMainTabBarController shareViewController];
UINavigationController *oneNav = mainTabBar.childViewControllers[0];
OJPNewHomeMapViewController *oneHome = oneNav.viewControllers[0];
[oneHome configLocationManagerRequestUnderway:NO];
}
});
}
});
dispatch_resume(_timer);
}
iOS-后臺(tái)倒計(jì)時(shí)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 由于蘋果官方對(duì)iOS系統(tǒng)后臺(tái)任務(wù)管控非常嚴(yán)格,所以在iOS系統(tǒng)要實(shí)現(xiàn)倒計(jì)時(shí)進(jìn)入后臺(tái)或者切換頁面之后依然能保持倒計(jì)時(shí)...
- Tip:這篇文章筆者還未接觸Markdown語言所做筆記。直接復(fù)制代碼請(qǐng)點(diǎn)擊->源代碼Copy不報(bào)錯(cuò) 前言:前段時(shí)...
- 今天因項(xiàng)目需求:軟件在后臺(tái)倒計(jì)時(shí),結(jié)束后跳到B界面,簡(jiǎn)單的了解了一下,程序進(jìn)入后臺(tái)的幾種方法和程序的幾種狀態(tài) 一...
- 最近在做一個(gè)app,其中的需求 獲取手機(jī)驗(yàn)證碼的時(shí)候需要實(shí)現(xiàn)60s倒計(jì)時(shí)。 但由于app本身不是音頻類的,所以想試...