iOS 定時(shí)刷新

有一個(gè)這樣的需求狸棍,例如要求我們每天晚上12點(diǎn)的時(shí)候烦秩,刷新一次。

問(wèn)題就來(lái)了:
1刻获、怎樣定時(shí)刷新蜀涨?用本地通知?還是后臺(tái)給予消息蝎毡?
2厚柳、每一個(gè)國(guó)家的時(shí)間不同,是否要注意什么沐兵?

那我就帶著問(wèn)題去思考這個(gè)問(wèn)題别垮?
1、本地通知是可以很好的去實(shí)行扎谎,但是假如用戶把推送關(guān)掉了碳想,反正我一般的應(yīng)用都是關(guān)掉推送的烧董。所以這個(gè)并不能很好的解決這個(gè)問(wèn)題。
2移袍、后臺(tái)給予消息解藻,每天在同一個(gè)時(shí)間給出來(lái),也不太可能葡盗,并不是長(zhǎng)鏈接嘛
3螟左、我想此時(shí),我們應(yīng)該可以換一種思維觅够,每次啟動(dòng)后胶背,我們不都是刷新嘛,就算用戶在那個(gè)時(shí)間點(diǎn)喘先,我們簡(jiǎn)單的加一個(gè)時(shí)間判斷就好了钳吟,假如時(shí)間是在12:00,就異步執(zhí)行這個(gè)操作就好了窘拯。
4红且、至于每一個(gè)國(guó)家,時(shí)間是可以設(shè)置時(shí)區(qū)的涤姊。

根據(jù)以上的問(wèn)題回顧了下本地推送和定時(shí)操作暇番。

本地推送
// 注冊(cè)
 if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
       [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
 }
//注冊(cè)本地化
// 初始化本地通知 
UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
// 通知觸發(fā)時(shí)間 
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];

// 這邊可以設(shè)置很多屬性,alertBody userInfo
// userinfo  可以設(shè)置 key value

 // 注冊(cè)本地通知
 [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
//接收本地通知(APPDelegate)
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 
    // 接收后想做的事件
}
//1思喊、移除本地通知
[[UIApplication sharedApplication] cancelAllLocalNotifications];

//2壁酬、注意移除 某個(gè)
// 取出全部本地通知 
NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications; 
// 設(shè)置要移除的通知id
 NSString *notificationId = @"idOne"; 
// 遍歷進(jìn)行移除 
for (UILocalNotification *localNotification in notifications)  { 
        // 將每個(gè)通知的id取出來(lái)進(jìn)行對(duì)比 
        if ([[localNotification.userInfo objectForKey:@"id"] isEqualToString:notificationId])
        { 
           // 移除我們指定的那個(gè)通知 
            [[UIApplication sharedApplication] cancelLocalNotification:localNotification]; 
        } 
}

注意 :一個(gè)App中,本地通知數(shù)量最多64個(gè)恨课,不用的通知要及時(shí)移除舆乔;記住添加了,就要及時(shí)移除的習(xí)慣剂公。

定時(shí)的三種方法
// 3s后自動(dòng)調(diào)用self的doSomething方法
[self performSelector:@selector(doSomething) withObject:nil afterDelay:3];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
     // 3s后自動(dòng)執(zhí)行這個(gè)block里面的代碼 
});
// 3s 后自動(dòng)調(diào)用self的doSome方法
[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(doSome) userInfo:nil repeats:NO];

// 還得經(jīng)常注意  滑動(dòng)的時(shí)候
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

此時(shí)接著想到了那個(gè)問(wèn)題希俩,發(fā)現(xiàn)假如那個(gè)定時(shí)刷新的頁(yè)面,在我們需要的那個(gè)時(shí)間處于后臺(tái)诬留,而且沒(méi)有被殺死斜纪,用戶又馬上回來(lái)啦,此時(shí)立馬想到兩個(gè)問(wèn)題啦:

  • 1文兑、此時(shí)這種情況是刷新不到的我們的任務(wù)的。
  • 2腺劣、那個(gè)頁(yè)面總是在核對(duì)時(shí)間是有問(wèn)題的绿贞,肯定是有問(wèn)題的。

所以重新想橘原,有沒(méi)有更好的方法呢籍铁?繼續(xù)思考下涡上,一個(gè)雞賊的方法,每次進(jìn)入系統(tǒng)的時(shí)候拒名,判斷一下是不是當(dāng)天距離那個(gè)時(shí)間點(diǎn)之后的第一次進(jìn)入吩愧,如果是,則系統(tǒng)通知下增显,需要刷新的地方刷新雁佳,貌似問(wèn)題就這樣解決了。如有好的方法歡迎告知同云,哈哈糖权。

備注:

回顧通知這塊的知識(shí),看了下iOS開(kāi)發(fā)系列--通知與消息機(jī)制非常詳細(xì)炸站。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末星澳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旱易,更是在濱河造成了極大的恐慌禁偎,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阀坏,死亡現(xiàn)場(chǎng)離奇詭異如暖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)装处,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人李命,你說(shuō)我怎么就攤上這事阔籽。” “怎么了证薇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵度苔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我浑度,道長(zhǎng)寇窑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任箩张,我火速辦了婚禮甩骏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伏钠。我一直安慰自己横漏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布熟掂。 她就那樣靜靜地躺著缎浇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赴肚。 梳的紋絲不亂的頭發(fā)上素跺,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音誉券,去河邊找鬼指厌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛踊跟,可吹牛的內(nèi)容都是我干的踩验。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼商玫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼箕憾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拳昌,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袭异,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后炬藤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體御铃,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年沈矿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了上真。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羹膳,死狀恐怖谷羞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溜徙,我是刑警寧澤湃缎,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蠢壹,受9級(jí)特大地震影響嗓违,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜图贸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一蹂季、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疏日,春花似錦偿洁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挠阁,卻和暖如春宾肺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侵俗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工锨用, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隘谣。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓增拥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寻歧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掌栅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,171評(píng)論 25 707
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開(kāi)發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋(píng)果官方的步伐熄求,SD...
    Isspace閱讀 6,719評(píng)論 10 16
  • 推送通知 注意:這里說(shuō)的推送通知跟NSNotification有所區(qū)別 NSNotification是抽象的渣玲,不可...
    iOS開(kāi)發(fā)攻城獅閱讀 4,229評(píng)論 1 13
  • 幸福是需要修出來(lái)的#每天進(jìn)步1%,幸福12班弟晚,20-王青青—晉江 【幸福三朵玫瑰】 回老家看可樂(lè)太奶奶們? 休息 ...
    王青青幸福實(shí)修者閱讀 181評(píng)論 0 2
  • 蒙古人的崛起忘衍,是東方在歷史上影響世界的最大事件。 忽必烈的元帝國(guó)是蒙古帝國(guó)的最東的四分之一卿城。雖然從血脈上來(lái)說(shuō)忽必烈...
    haywirehouse閱讀 125評(píng)論 0 0